簡體   English   中英

jQuery.trigger('click') 導致 IE8 中的“更改”事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM