jquery触发'a'标记的点击事件

时间:2015-04-29 09:42:01

标签: jquery html triggers click

我正在尝试触发'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();
 });
});

请帮帮我。感谢

4 个答案:

答案 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()   以与事件相同的顺序执行处理程序   由用户自然触发

jQuery Trigger Event

答案 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。

相关问题