我试图选择一个单选框时,我点击一个李。但我得到的错误“多递归”。jQuery太多递归
代码是:
$('li').click(function(){
$('li.selected').removeClass('selected');
$(this).addClass('selected');
$(this).children("input[type=radio]").click();
});
这是使用jQuery 1.4.2和1.7.2的用户界面。
我试图选择一个单选框时,我点击一个李。但我得到的错误“多递归”。jQuery太多递归
代码是:
$('li').click(function(){
$('li.selected').removeClass('selected');
$(this).addClass('selected');
$(this).children("input[type=radio]").click();
});
这是使用jQuery 1.4.2和1.7.2的用户界面。
当你点击()孩子input
时,事件冒泡并重新触发li
的click()。您需要将.click()添加到input
,并在其中执行event.preventBubble=true;
,否则只需设置已选中的属性而不是click()
即可。
是的,这是事件冒泡。事件冒泡李
你只需要做到这一点:
$('li').click(function(e){
if($(e.target).is('li')){
$('li.selected').removeClass('selected');
$(this).addClass('selected');
$(this).children("input[type=radio]").click();
}
});
不要添加下面更多的事件,它的混乱
作为一个通用的答案 - 这个问题似乎是jQuery有太多的工作要做 - 即循环元素等。我遇到了这个问题,当我检查萤火虫中的页面时,我期望jquery处理的元素太多了。
在Firefox的Javascript调试器中,您可以单击>旁边的错误,它会给你更多的细节,以触发它。
为了防止这种情况对任何人有用,此消息可能出于各种原因显示,如其他贡献者所述,这可能是Even bubble的情况。但对我来说,这是我的代码中的一个错误,导致了一个永无止境的函数调用。一个函数正在调用自己,换句话说就是再次调用自己 - 永不结束递归。
所以,只要检查你的代码,看看是否有这样一种情况,jQuery陷入了调用某个块的永无止境的循环。
Very use full ..... – 2011-09-17 10:11:45
is [Break On This Error] ...; d && m.filter(b,a,!0)}},“”:function(a,b,c) {var d,f = e ++,g = x; typeof b ==“string”&&!l ... 引起的同一个事件在这里描述? – 2012-10-10 17:32:58