![](/img/trans.png)
[英]event.preventDefault() not being honored for a jquery.trigger(“click”)
[英]jQuery.trigger('click') results in "change" Event in IE8
$('#myRadioButton').change(function(event) {
var eventType = event.type;
$(this).trigger('click'); // In IE8 only, this results in endless loop
});
上面的代码片段导致在 IE8 中触发更改事件,因此当我的单选按钮被选中时,将启动一个无限循环。 这不是预期的行为,因为“点击”事件当然不是“更改”事件。 在其他浏览器和 IE9+ 中,代码按预期工作(即,不是无限循环)。
变量eventType
在 IE8 中等于"change"
,对于初始的、用户触发的“change”事件,以及对自身的后续调用。
这种行为的原因是什么以及如何阻止 IE8 成为一个混蛋并像普通浏览器一样行事?
此致!
原因 - 不知道抱歉。
'解决':-
function radioChange() {
$(this).off('change', radioChange);
$(this).trigger('click');
$(this).on('change', radioChange);
}
$('#myRadioButton').change(radioChange);
trigger
是同步的,因此删除change
,然后触发click
,然后重新附加change
应该可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.