2011-06-17 93 views
1

我正在使用Ben Alman's outside events plugin來關閉一個模式窗口,當用戶點擊它之外。這工作得很好,直到我需要在模態中使用jQuery UI的datepicker。由於構成窗口小部件的元素沒有放置在模式中,因此選擇日期時模式關閉,這是正確的行爲。爲了試圖解決這個問題,我做了以下內容:如何將jQuery外部事件插件的事件綁定到多個元素?

$('#modal-window, #ui-datepicker-div').one('clickoutside', function(){ 

    // close the modal window 

}); 

這只是使模態窗口被點擊時它關閉。

+0

如果可以,您可以防止日期選取器上的事件冒泡。這應該可以解決你的問題 – ShankarSangoli

回答

1

從你在你的問題鏈接的頁面:

請注意,您也可以利用event.target屬性,它引用實際點擊的元素,在事件處理邏輯。如果您想限制點擊的「外部性」到某些元素或容器,這可能會很有用。

我想用event.target以及closest來查找鏈接是否在日期選擇器中。

$('#modal-window').one('clickoutside', function(event) { 
    if (!$(event.target).closest('#ui-datepicker-div').length) { 
     $(this).hide(); // or whatever code you have for hiding the modal window 
    } 
}); 
+0

這正是我所嘗試的,但它不能解決問題。如果您單擊prev/next按鈕來推進月份,它仍會關閉模式。 –

相關問題