在以下代码中e.preventdefault();无法正常工作,浏览器正在访问锚点href。我可以看到第一个警报,但之后浏览器会跟踪锚点的href链接。我已经在Stackoverflow上阅读了这个(类似的)问题,但它并没有真正帮助我:e.preventdefault(); not working
关于我做错了什么或如何解决它的任何想法?提前谢谢。
$('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);
});
});
答案 0 :(得分:2)
尝试首先执行preventDefault调用。警报可能会妨碍。
另外,因为这是一个委托事件,您可能还需要调用e.stopPropagation。
最后,在这种情况下我不是100%确定,但事件可能无法取消(检查e.cancelable的值)。见https://developer.mozilla.org/en/DOM/event.preventDefault