jQuery太多的递归

Kev*_*nce 31 recursion jquery jquery-ui

我点击LI时试图选择一个收音机盒.但我得到错误"很多递归".

代码是:

$('li').click( function(){
     $('li.selected').removeClass('selected');
     $(this).addClass('selected');
     $(this).children("input[type=radio]").click();
});
Run Code Online (Sandbox Code Playgroud)

这是使用jQuery 1.4.2和UI 1.7.2.

Mig*_*tyE 32

当你.click()孩子时input,事件会冒泡并重新触发li点击().你需要一个.点击()添加到inputevent.preventBubble=true;它,要不然刚才设置的检查属性,而不是click()荷兰国际集团它.


nau*_*tur 11

是的,这是冒泡的事件.活动泡到李

你必须这样做:

$('li').click( function(e){
  if($(e.target).is('li')){
     $('li.selected').removeClass('selected');
     $(this).addClass('selected');
     $(this).children("input[type=radio]").click();
  }
});
Run Code Online (Sandbox Code Playgroud)

不要在下面添加更多活动,这很麻烦