我將我的應用程序移至最新的jQueryUI版本,現在行爲已經改變。即當打開對話框時,在具有焦點的元素上調用模糊事件。當對話框關閉時,該元素的焦點事件再次被調用。以前的jQuery版本沒有調用這些事件。Dialog的關閉事件觸發焦點事件並導致無限循環
問題是我打開焦點事件中的對話框,關閉它,因此再次調用焦點併發生無限循環。
我該如何防止這個無限循環?
編輯:
我無法得到它的權利在一個簡單的jsfiddle最好的是這個
<div id="dialog" title="Select Value">
<select id="select" name="select">
<option value="1">Test</option>
</select>
</div>
<input type="text" name="test" id="test" value="" />
$(document).ready(function() {
$("#dialog").dialog({
autoOpen: false,
height: 120,
width: 185,
position: [285, 200],
modal: true,
buttons: {
"Ok": function() {
$(this).dialog("close")
}
}
});
$("#test").focus(function (event) {
$("#dialog").dialog("open");
});
});
這裏沒有死循環,但你可以在關閉後見因爲一切都「模糊不清」,頁面(結果)的對話框被打破。
而且舊的行爲更像是這一個:
這裏的背景仍然是「模糊了」,但你可以將精力集中到輸入這是不可能的新版本。
這對鍵盤導航或屏幕閱讀器用戶無效。 – isherwood