2011-06-17 96 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按钮来推进月份,它仍会关闭模式。 –

相关问题