繁体   English   中英

jQuery单击单击处理程序

[英]Jquery click in on click handler

我在jquery click事件中有一些奇怪的行为。 这是我的代码:

$("#item").on("click",function(){
    //do some stuff
    $("#item2").click(); // doesn't work!
});

但是单击#item时,第二次单击不起作用。 手动单击item2时,它确实起作用。 我这样做时可以正常工作:

$("#item").on("click",function(){
    //do some stuff
    document.getElementById("item2").click(); //WORKS!
});

我还尝试了jquery点击触发器之前的event.preventDefault() ,但这也不起作用。

有人可以解释为什么这不适用于jquery吗?

您不能使用click()作为简单方法,它必须是一个函数,因此您应该trigger() click事件:

$("#item").on("click",function(){
    //do some stuff
    $("#item2").trigger("click");
});

 $(function(){ $("#item").on("click",function(){ //do some stuff $("#item2").trigger('click'); // Now Works !!! }); $("#item2").on("click",function(){ //do some stuff alert('working') }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="item">item1</button><button id="item2">item1</button> 

请看这个小提琴 我已经添加了

$("#item2").trigger('click'); 

在您的代码中。

这是您的解决方案:

$("#item2").trigger('click'); //使用jQuery的触发函数

您阅读过JQuery的文档吗? https://api.jquery.com/click/中解释了onClick,您可以找到为什么event.preventDefault在JQuery触发器之前不起作用的原因

解决方案:

$("#item2").trigger('click'); // Use trigger function of jQuery to Trigger

请阅读文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM