1

我刚刚为我开始的一个全新项目下载了 jQuery 1.7。

阅读文档后,我看到 .on() 现在替换了 .live()。从文档中引用:

从 jQuery 1.7 开始,.on() 方法提供了附加事件处理程序所需的所有功能。有关旧 jQuery 事件方法的等价物,请参阅 .bind()、.delegate() 和 .live()。

所以我想做的很简单。我有以下 jQuery,它当然使用旧方法:

$('a').live('click', function(e){
    e.preventDefault(); 
});

这工作得很好,我的意思是阻止了锚的默认行为。如果我使用这个:

$('a').on('click', function(e){
    e.preventDefault(); 
});

锚点的默认行为不会被阻止,当点击它时会加载另一个页面。我在这里做错了什么还是我误解了.on()?

4

1 回答 1

2

它确实有效。

http://jsfiddle.net/RsHnn/

您确定该页面上没有任何 JS 错误/您确定您使用的是 jQuery 1.7?

编辑

如果您希望它与动态添加的元素一起使用,您似乎需要添加选择器。

http://jsfiddle.net/RsHnn/2/

于 2011-11-04T16:04:40.170 回答