![](/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.