e.preventDefault not executing

e.preventDefault not executing

本文关键字:executing not preventDefault      更新时间:2023-09-26

在下面的代码中e.p preventdefault();不工作,浏览器正在访问锚href。我可以看到第一个警报,但在此之后,浏览器会跟随锚的href链接。我在Stackoverflow上读过这个(类似的)问题,但它并没有真正帮助我:不工作

有什么想法我做错了,或者我怎么能解决它?提前谢谢。

$('body').delegate('a.newslink', 'click', function(e) {
    alert('start');
    e.preventDefault();
    $.get( $(this).attr('href'), function(data) {
        alert(data);
        $('.reader').replaceWith(data); 
        $('#article-menu').removeClass('open');
        $('#article-menu').addClass('closed');
        $('#newslist').animate({height:'0px'}, 200);
    });
}); 

尝试将preventDefault调用作为您要做的第一件事。警报可能会妨碍你。

也因为这是一个委托事件,你可能还需要调用e.s stoppropagation。

最后,我不是100%确定在这种情况下,但事件可能是不可取消的(检查e.c cancelable的值)。见https://developer.mozilla.org/en/DOM/event.preventDefault