Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery preventDefault()停止onclick的工作_Jquery_Preventdefault - Fatal编程技术网

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

我在jQuery preventDefault运行标记的onclick函数时遇到问题。以下是我的例子:


我以为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
});