event.preventDefault无法处理加载AJAX的内容

时间:2014-12-18 21:16:52

标签: javascript jquery ajax

这件事让我疯了。

所以我通过AJAX加载了一些简单的HTML,一旦它加载到DOM上我就这样做了。

$('#wrap a.link').click(function(e) {
    e.preventDefault();
    alert("asdasdad");
});

它不会阻止链接导航到href属性中的url。

我的语法似乎正确,我确保元素在DOM中,并且函数找到a.link元素。

$("#wrap a.link").each(function(key, value) {
    console.log("found a link"); // this shows up in the console
});

我还尝试过使用off()stopImmediatePropagation()以防万一其他事件可能会干扰,但没有。我也尝试使用相同的结果绑定each()循环内的事件。

可能导致此行为的原因是什么?

2 个答案:

答案 0 :(得分:6)

使用事件委托:

$(document).on('click', '#wrap a.link', function(e) {
    e.preventDefault();
    alert("asdasdad");
});

<强>注意: 保持您的ID唯一。

答案 1 :(得分:6)

将事件绑定到正文以获取动态元素:

$('body').on('click','#wrap a.link',function(e) {
     e.preventDefault()
});