Jquery 单击父对象,然后单击子对象上的事件
当我单击.letitre时,我想模拟在子元素.mybutton中的单击 HTML: 是的,我试过了,但不起作用(根本没有点击)Jquery 单击父对象,然后单击子对象上的事件,jquery,Jquery,当我单击.letitre时,我想模拟在子元素.mybutton中的单击 HTML: 是的,我试过了,但不起作用(根本没有点击) 您需要找到按钮并单击它,如果您委派一个按钮,则需要同时委派这两个按钮 此外,必须停止传播,否则将循环 $(函数(){ $(document).on(“click”,“.letitre”,function()){ $(this.find(“.mybutton”)。单击(); }); $(文档)。在(“单击”,“我的按钮”,函数(e){ e、 stopPropagatio
您需要找到按钮并单击它,如果您委派一个按钮,则需要同时委派这两个按钮 此外,必须停止传播,否则将循环
$(函数(){
$(document).on(“click”,“.letitre”,function()){
$(this.find(“.mybutton”)。单击();
});
$(文档)。在(“单击”,“我的按钮”,函数(e){
e、 stopPropagation();//确保单击停止在此处
console.log($(this.text())
});
});代码>
按钮
按钮2
您需要找到按钮并单击它,如果您委派一个按钮,则需要同时委派两个按钮
此外,必须停止传播,否则将循环
$(函数(){
$(document).on(“click”,“.letitre”,function()){
$(this.find(“.mybutton”)。单击();
});
$(文档)。在(“单击”,“我的按钮”,函数(e){
e、 stopPropagation();//确保单击停止在此处
console.log($(this.text())
});
});代码>
按钮
按钮2
这是另一个不用jQuery也同样容易解决的问题:
document.addEventListener('click',({target})=>{
if(target.matches('.letitre')){
target.childNodes[1]。单击();
log(“单击的子项:”);
}
//正如你所见,我的按钮被点击了
if(target.matches('.mybutton')){
log(“.mybutton收到了点击!”);
}
})
.mybutton{color:#a00;}
外部
按钮
外面
按钮
这是另一个不用jQuery也同样容易解决的问题:
document.addEventListener('click',({target})=>{
if(target.matches('.letitre')){
target.childNodes[1]。单击();
log(“单击的子项:”);
}
//正如你所见,我的按钮被点击了
if(target.matches('.mybutton')){
log(“.mybutton收到了点击!”);
}
})
.mybutton{color:#a00;}
外部
按钮
外面
按钮
按钮
已经是jQuery对象,无需再次包装。按钮
已经是jQuery对象,无需再次包装。谢谢,它正在工作,只是不要忘记。对于mybutton(find)@Youstart-我必须使用香草Javascript添加一个stoppropagation,没有循环问题,请参阅我的答案。如果正确检查事件目标,单击div.mybutton
将不会触发侦听器。@connexo-这不太可能。我确信jQuery一次只编码一个元素,而且我确信按钮在其他地方会有自己的事件处理程序。谢谢,它正在工作,只是别忘了。对于mybutton(find)@Youstart-我必须使用香草Javascript添加一个stoppropagation,没有循环问题,请参阅我的答案。如果正确检查事件目标,单击div.mybutton
将不会触发侦听器。@connexo-这不太可能。我确信jQuery一次只编码一个元素,而且我确信按钮在其他地方会有自己的事件处理程序,而不是letitrean,为什么没有循环?我将此添加到了您的:document.queryselectoral(.mybutton”).forEach(但是=>but.addEventListener(“单击”,function(){console.log(this.textContent)}))
为什么没有循环?我将此添加到您的中:document.queryselectoral(.mybutton”).forEach(but=>but.addEventListener(“单击”,function(){console.log(this.textContent)}))
<div class="letitre">
<div class="mybutton">Button</div>
</div>
<div class="letitre">
<div class="mybutton">Button</div>
</div>
$(function(){
$("body").on("click", ".letitre",function(){
$(".mybutton").click();
});
});
$(function(){
$("body").on("click", ".letitre",function(){
var button = $(this).find(".mybutton");
$(button).click();
});
});