jQuery.ajax在IE7 / 8中不起作用

时间:2010-12-01 18:38:22

标签: javascript jquery ajax

我脚本中的某些内容正在破坏IE。

我正在查看与类的链接集合,并劫持URL。 单击链接将为高度设置动画并显示消息。它也是 做一个ajax请求将消息标记为已读。

然而,在IE中它只是转到URL而不是停留在页面上并处理http请求。

$('.message .subject .subject_link').click(function(e) {

    toggle_message(e)
    return false;

});


function toggle_message(m) {

var link = m.target;
var parent = $(link).parent().parent();
console.log(link.href);
$.ajaxSetup({

    url: link.href,
    dataType: 'json',
    timeout: 63000,
    type: 'GET',
    cache: false

});

if($(parent).hasClass('unread')) {

    $(parent).addClass('read').removeClass('unread');

    $.ajax({

        complete: function(r, textStatus) {
            console.log(r.responseText)
        }

    });

}

if($(parent).find('.body_wrapper').hasClass('collapsed')) {
    $(parent).find('.body_wrapper').addClass('expanded').removeClass('collapsed');
    $(parent).find('.body_wrapper').animate({
            height: 'toggle'
    })
} else {
    $(parent).find('.body_wrapper').addClass('collapsed').removeClass('expanded');
    $(parent).find('.body_wrapper').animate({
            height: 'toggle'
    }) 
}

}

任何想法是什么导致了这个问题? http://support.cooper.krd-design.net/ tester:12345如果你想查看页面

由于 富

2 个答案:

答案 0 :(得分:0)

添加

  

e.preventDefault();

在第一个函数中的toggle_message之前应该有效,尽管也应该返回false。

答案 1 :(得分:0)

我现在无法访问IE,但我认为您可以尝试阻止在Click()中触发默认点击事件 - 这样的功能:

$('.message .subject .subject_link').click(function(e) {
    toggle_message(e)
    e.preventDefault();
});

更多关于.preventDefault():http://api.jquery.com/event.preventDefault/