我尝试为以下任务创建一个通用解决方案:onclick元素的事件侦听器
<a href="#">Some text</a>
必须返回false。它可以在点击后停止页面滚动。
$("a[href='#']").bind("click", function () { return false; });
它可以停止滚动,但“返回假”也会停止冒泡!所以,如果我有以下代码
HTML
<div class="clickable">
<a href="#">Text</a>
</div>
Javascript(JQuery)
$("a[href='#']").bind("click", function () { return false; });
$(".clickable").bind("click", function(){alert("It works!");})
如果我点击“文字”,则没有提醒。
我可以恢复冒泡吗?或者,可能是,还有另一种常见的方法可以从每个这样的“a”标签的onclick事件监听器返回false吗?或者唯一的方法是在“a”上添加监听器功能(){alert(“It works!”);}?
答案 0 :(得分:2)
更改click功能的签名以接受事件参数并使用preventDefault
:
$("a[href='#']").bind("click", function (e) { e.preventDefault(); });
$(".clickable").bind("click", function(){alert("It works!");})
答案 1 :(得分:1)
<a href="#" onclick="return false;">Some text</a>
你的jQuery绑定点击功能应该继续工作。
示例:
答案 2 :(得分:1)
为了阻止冒泡,我总是遵循这个:
$('myAnchor').live("click", function(e) {
e.preventDefault();
e.stopPropagation();
//or if you want to stop all handlers
e.stopImmediatePropagation();
//code here
//for IE etc.
return false;
});