我很想知道:
我的html文件中有一些链接,其中大多数都需要在他们的点击功能中写入,不要跳到页面顶部(e.preventDefault()会这样做)我需要写一下这个动作除了他们实际执行的功能之外。
我能写出类似的东西:$('a').click(function(){e.preventDefault()})
会起作用吗?或者如果我写的话会与实际函数产生冲突:
$('a').click(function(){e.preventDefault()});
$('a#goingToDoSomething').click(function(){console.log('just did it')})
我问,因为我想让我的代码更好 - 但不确定这是不是...... 谢谢, 阿龙
答案 0 :(得分:6)
是的,如果您将normalised event object传递给回调函数,它将起作用:
$('a').click(function (e) {
e.preventDefault();
});
不,不会有任何冲突(冲突?嗯?)。您可以将额外的点击处理程序绑定到您的链接,它们将按预期工作。
答案 1 :(得分:2)
其他答案是正确的,但效率不高:
$('body').on('click', 'a', function(e){
e.preventDefault();
});
修改强>
$(document).on
会更快,但未经过测试,应该可以正常工作
需要jQuery 1.7 +
答案 2 :(得分:1)
如果将事件对象传递给单击处理程序,它应该可以正常工作。试试这个
$('a').click(function(e){e.preventDefault()})