我正在尝试触发'li'中的锚标记的点击事件。当点击'li'时,我想在'li'中触发一个标签。我的html和jQuery如下所示。在jquery下方显示此错误。
“过多的递归......”
<li><a href="link">link text</a></li>
$(document).ready(function(){
$("#menu-top li").click(function(){
$(this).children('a').click();
});
});
请帮帮我。感谢
答案 0 :(得分:3)
使用trigger
事件!
<li><a href="link">link text</a></li>
$(document).ready(function(){
$("#menu-top li").click(function(){
$(this).children('a').trigger('click');
});
});
使用.on()或其快捷方法之一附加的任何事件处理程序 在相应事件发生时触发。他们可以解雇 但是,使用.trigger()方法手动。调用.trigger() 以与事件相同的顺序执行处理程序 由用户自然触发
答案 1 :(得分:0)
使用'find'代替'children'
['14157.72'],['39140.94'],['36383.66'],['38508.00'],['8424.00']
答案 2 :(得分:0)
调用event.stopPropagation()以递归方式调用click,因为单击a将触发其父li的单击。这将再次导致单击锚标记,从而导致递归调用。
<强> Live Demo 强>
$(document).ready(function () {
$("#menu-top li").click(function (event) {
alert("li clicked");
$(this).children('a').click();
});
$("#menu-top li a").click(function (event) {
//your code
alert("a clicked");
event.stopPropagation();
});
});
答案 3 :(得分:0)
在您的代码中添加:
$("#menu-top li a").click(function(e){
e.stopPropagation();
});
这将阻止click事件从子元素a传播到父元素li。