有沒有一種方法可以連接到jQuery UI對話框上的關閉(x)按鈕,以便您可以提供專用的事件處理程序?使用「close」或「beforeclose」事件不起作用,因爲如果在對話框中還有其他按鈕也會導致對話框關閉,那麼您總是要打「close」和「beforeclose」事件,這是不可取的。我想要一種方法來運行close(x)按鈕中的特定代碼。jQuery UI對話框中關閉(x)按鈕的專用事件處理程序
5
A
回答
3
你可以嘗試:
$(document).on('click','.ui-dialog-titlebar-close',function(){
//close button clicked
});
1
據我知道有沒有辦法直接連線到該按鈕,但你可以通過添加dialogClass和接線自己的事件處理程序做具體到您的彈出式的東西:
var dialogClass ="yourPopupTitle";
$(document).on('click', '.'+ dialogClass +' .ui-dialog-titlebar-close', function() {
handleEvent();
});
9
每當一個事件導致一個jQuery UI控件內的另一個事件,始終包含在事件Ø原始事件bject。在這種情況下,您可以查看傳遞給close
回調或dialogclose
事件的事件對象,並檢查event.originalEvent
是否存在。如果是這樣,那麼你可以假設對話框是通過點擊關閉按鈕關閉的。這也適用於beforeclose
。
如果您想確保它是標題欄中的關閉按鈕,那麼您可以檢查event.originalEvent.target
並使用.closest()
檢查課程或DOM位置。
這裏顯示了動作中的一個jsbin:http://jsbin.com/ajoheWAB/1/edit
0
我相信這是你正在尋找的解決方案 - 您需要解除綁定click事件和自定義處理程序重新綁定到它。
雖然這個線程很舊,但我仍然在這裏添加我的解決方案,希望能夠讓那些搜索它的人受益。
var fnCustomerHandler = function() {
alert("Here is your custom handler...");
};
$("#dialog").dialog({
open: function(event, ui) {
var el = $(this).closest('.ui-dialog').find('.ui-dialog-titlebar-close');
el.off();
el.on("click", fnCustomerHandler);
}
}
);
小提琴鏈接:
相關問題
- 1. jquery ui對話框 - 按鈕點擊事件處理程序
- 2. 防止在按鈕的單擊事件處理程序中關閉對話框
- 3. 我如何添加一個處理程序jquery UI對話框關閉事件
- 4. Jquery UI對話框 - 自定義關閉按鈕(X)
- 5. jQuery UI對話框和IFRAME - 帶'on'事件處理程序
- 6. jQuery對話框:備用關閉按鈕
- 7. jQuery UI對話框不關閉內部應用程序關閉
- 8. 在關閉jQuery UI對話框之前延遲關閉事件
- 9. jquery-ui關閉對話框
- 10. Jquery UI對話框關閉按鈕不起作用
- 11. jQuery UI對話框關閉按鈕不起作用
- 12. 根據按鈕關閉jQuery UI對話框的不同動畫?
- 13. 位置關閉圖像按鈕以外的jQuery UI對話框
- 14. 關閉Iframe中的jQuery UI對話框
- 15. Ui引導程序對話框關閉
- 16. 默認關閉模式對話框關閉x按鈕
- 17. jquery ui對話框關閉按鈕方向
- 18. 使瀏覽器返回按鈕關閉jQuery UI對話框
- 19. jQuery UI的對話框關閉按鈕並不與當地的jQuery文件
- 20. 如何檢測單擊jQuery UI對話框的(X)關閉按鈕,與dialogclose/dialogbeforeclose事件分開?
- 21. JQuery模式對話框關閉事件
- 22. JQuery對話框關閉事件
- 23. Jquery對話框關閉按鈕不關閉;對話框只能打開一次
- 24. 關閉屏幕的JQuery UI對話框
- 25. jQuery UI的對話框不會關閉
- 26. jQuery UI的對話框不會關閉
- 27. 無法關閉jQuery UI的對話框
- 28. 關閉jQuery UI的對話框
- 29. 禁用/刪除ajax對話框的關閉(X)按鈕
- 30. jQuery UI對話框 - 暫停關閉事件