繁体   English   中英

用户在父div中单击时单击按钮

[英]click button when user clicks in parent div

我有我的网络中的一些元素的代码,我想这样做:

当用户点击div时,触发div内部按钮的单击(在这种情况下,这些按钮打开一个模态),这在我创建window.location而不是触发器的页面的其他位置。 这段代码有什么不好的地方? 我不知道:(

对不起我的英文,谢谢。

jQuery(".hover-content").click(function(e){
        var hl = jQuery(this);
        jQuery(this).find("button").each(function(){
            if(jQuery(this).is(":visible")){
                jQuery(this).trigger("click");
            }
        });
    });

控制台显示此错误:

未捕获RangeError:超出最大调用堆栈大小

小例子: https//jsfiddle.net/z0704nss/

这是因为Javascript中的事件冒泡
我可以通过在你的代码片段中添加e.stopPropagation()来复制和解决它。

 $(".hover-content").click(function(e){ e.preventDefault(); console.log('hi') e.stopPropagation(); $(this).find("button").each(function(){ if($(this).is(":visible")){ $(this).trigger("click"); } }); }); $('.button-ex').click(function(e){ e.preventDefault(); e.stopPropagation(); console.log('clicked button') }) 
 body { background-color: #eef; padding: 5px; } .hover-content{ background-color:#FF0000 } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="hover-content"> <button id="btnOne" class="button-ex">demo1</button> <button id="btnTwo" class="button-ex">demo2</button> </div> 

暂无
暂无

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

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