2012-03-15 68 views
2

我需要听window.onresize事件,因此,使用jQuery,我做了以下听窗口在onResize,不包括jQuery的对话框的在onResize

$(window).resize(...) 

当我打开一个jQuery UI的可调整大小的对话框,它被调整大小,窗口onresize也被触发,但我不想对此事件作出反应。如何实现这一目标?

我需要听窗口在onResize来调整内部面板时的窗口大小的变化

+0

我不能保证这可以工作,但是您可以尝试附加一个回调处理程序,该回调处理程序在可调整大小的“resize”事件的事件上调用“stopPropagation()”。这应该有希望阻止它一直冒泡到窗口。 – 2012-03-15 13:47:39

回答

0

要在我的评论扩大量小:尝试调用event.stopPropagation()在传递给resize财产resize回调处理程序设置时调整可调整大小的对话框。代码会是这个样子:

$('selector-for-dialog').resizable({ 
    resize: function(event, ui) { 
     // do some stuff to react to this event here 
     event.stopPropagation(); 
    } 
}); 
+0

你的代码不起作用,但是做$('selector-for-dialog')。dialog({resize:function(event,ui)...将对话框中的调整大小乐趣注入到对话框中,但它被称为AFTER窗口调整大小监听器!!所以,可悲的是这并不能解决问题 – cdarwin 2012-03-15 15:01:14

0

与jQuery 1.7.2我用这个代码,在旧的ie浏览器以及Chrome的工作...

$(window).bind('resize', function(event) { 
    if ($(event.target).prop("tagName") == "DIV") {return;} // tag causing event is a div (i.e not the window) 
    console.log("resize"); 
}); 

这可能需要进行调整,如果调整大小的元素不是