jQuery preventDefault()停止onclick的工作
我在jQuery preventDefault运行标记的onclick函数时遇到问题。以下是我的例子:jQuery preventDefault()停止onclick的工作,jquery,preventdefault,Jquery,Preventdefault,我在jQuery preventDefault运行标记的onclick函数时遇到问题。以下是我的例子: 我以为preventDefault会停止默认事件href=。但它会让onclick事件继续发生。如果我把函数放在我的函数中,它就会工作。但是我希望在链接上有不同的onclick函数。正如adeneo和Jeremy所提到的,不要使用内联事件处理程序。它们将干扰jQuery事件处理程序 只需将两个函数合并为一个函数,即可工作: $("#main a").bind("click", function
我以为preventDefault会停止默认事件href=。但它会让onclick事件继续发生。如果我把函数放在我的函数中,它就会工作。但是我希望在链接上有不同的onclick函数。正如adeneo和Jeremy所提到的,不要使用内联事件处理程序。它们将干扰jQuery事件处理程序 只需将两个函数合并为一个函数,即可工作:
$("#main a").bind("click", function (e) {
e.preventDefault();
var p = $(this).position();
$("#loader").css("top", p.top - 20);
$("#loader").toggle();
});
如果我把函数放在我的函数中,它就会工作。但是我想在链接上有不同的onclick函数
如果您希望在不同的链接上有不同的onclick函数,那么使用类或id并使用jQuery适当地选择它们
HTML:
这不是1999年,摆脱内联事件处理程序,问题解决了!adeneo是对的,您将两次单击绑定到单个元素。一个使用内联javascript onclick=。。。另一个使用jQuery$main a.bindclick…,只需删除内联的一个。您可以使用jQuery或纯js绑定单击。同样的@adeneo和@Jeremy。要根据事件发生后用户来自的链接检查某些特定行为,我会在处理事件的函数中进行检查。@downvoter:这个问题可能很新,但决不是一个坏问题。他遵循如何提问的规则,问题本身被正确地提出。这不应该被否决。谢谢大家!这是我正在清理的代码,不是我的。在我了解jQuery之后,我今天不会自己写一个内联onclick:-但是现在我知道元素上有两个click绑定。我真的很想知道,因为我得到这个是为了
$("#main a").bind("click", function (e) {
e.preventDefault();
var p = $(this).position();
$("#loader").css("top", p.top - 20);
$("#loader").toggle();
});
<div id="main">
<p><a class="doSomething" href="#">I will NOT JUMP!</a></p>
<p><a class="doSomethingElse" href="#">I will NOT JUMP</a></p>
</div>
$("#main a.doSomething").bind("click", function (e) {
e.preventDefault();
var p = $(this).position();
$("#loader").css("top", p.top - 20);
$("#loader").toggle();
});
$("#main a.doSomethingElse").bind("click", function (e) {
e.preventDefault();
//Other code
});