$('#myRadioButton').change(function(event) {
var eventType = event.type;
$(this).trigger('click'); // In IE8 only, this results in endless loop
});
上面的代码片段导致在IE8中触发更改事件,因此在选择我的单选按钮时会启动无限循环。这不是预期的行为,因为"点击"事件当然不是"更改"事件。在其他浏览器和IE9+中,代码按预期工作(即,不是无限循环(。
变量 eventType
等于 IE8 中的 "change"
,既适用于用户触发的初始"更改"事件,也适用于后续对自身的调用。
这种行为的原因是什么,如何阻止IE8成为一个混蛋并像普通浏览器一样行事?
此致敬意!
原因 - 不知道对不起。
"解决方法" :-
function radioChange() {
$(this).off('change', radioChange);
$(this).trigger('click');
$(this).on('change', radioChange);
}
$('#myRadioButton').change(radioChange);
trigger
是同步的,因此删除change
,然后触发click
,然后重新连接change
应该可以工作。