jQuery preventDefault() 停止 onclick 工作
jQuery preventDefault() stops onclick from working
我有一个问题 jQuery preventDefault from 运行 标签的 onclick 函数。这是我的例子:Avoid page jump on # click
$("#main a").bind("click", function (e) {
e.preventDefault();
});
我认为 preventDefault 会停止默认事件 (href="#")。但它会让 "onclick" 事件继续发生。如果我将函数放在我的函数中,它就可以工作。但是我想在链接上有不同的点击功能。
正如 adeneo 和 Jeremy 提到的,不要使用内联事件处理程序。它们会干扰您的 jQuery 事件处理程序。
只需将这 2 个函数合并为一个,即可运行:
$("#main a").bind("click", function (e) {
e.preventDefault();
var p = $(this).position();
$("#loader").css("top", p.top - 20);
$("#loader").toggle();
});
If I put the function inside my function it works. But I want to have different onclick functions on the links.
如果你想在不同的链接上有不同的点击功能,然后使用 类(或 ID)和 select 它们适当地与 jQuery。
HTML:
<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>
jQuery:
$("#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
});
我有一个问题 jQuery preventDefault from 运行 标签的 onclick 函数。这是我的例子:Avoid page jump on # click
$("#main a").bind("click", function (e) {
e.preventDefault();
});
我认为 preventDefault 会停止默认事件 (href="#")。但它会让 "onclick" 事件继续发生。如果我将函数放在我的函数中,它就可以工作。但是我想在链接上有不同的点击功能。
正如 adeneo 和 Jeremy 提到的,不要使用内联事件处理程序。它们会干扰您的 jQuery 事件处理程序。
只需将这 2 个函数合并为一个,即可运行:
$("#main a").bind("click", function (e) {
e.preventDefault();
var p = $(this).position();
$("#loader").css("top", p.top - 20);
$("#loader").toggle();
});
If I put the function inside my function it works. But I want to have different onclick functions on the links.
如果你想在不同的链接上有不同的点击功能,然后使用 类(或 ID)和 select 它们适当地与 jQuery。
HTML:
<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>
jQuery:
$("#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
});