【问题标题】:Listening to window onresize, excluding jquery dialog's onresize监听窗口onresize,不包括jquery dialog的onresize
【发布时间】:2012-03-15 13:45:21
【问题描述】:

我需要监听 window.onresize 事件,所以,使用 jquery,我正在做以下事情

$(window).resize(...)

当我打开一个 jquery ui 可调整大小的对话框并调整它的大小时,窗口 onresize 也会被触发,但我不想对此事件做出反应。如何做到这一点?

当窗口大小发生变化时,我需要监听 window onresize 来调整内部面板的大小

【问题讨论】:

  • 我不能保证这会起作用,但是您可以尝试附加一个回调处理程序,该处理程序在可调整大小的resize 事件的事件上调用stopPropagation()。这应该有望防止它一直冒泡到窗口。

标签: javascript jquery dialog resize


【解决方案1】:

稍微扩展我的评论:在设置可调整大小的对话框时,尝试在传递给resize 属性的resize 回调处理程序中调用event.stopPropagation()。代码看起来像这样:

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

【讨论】:

  • 您的代码不起作用,但执行 $('selector-for-dialog').dialog({ resize: function(event, ui) ... 将调整大小的乐趣注入对话框。这很有趣。被称为 onresize,但它是在窗口调整大小侦听器之后调用的!!所以,遗憾的是这并没有解决问题
【解决方案2】:

在 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");
});

如果调整大小的元素不是

【讨论】:

    猜你喜欢
    • 2016-06-02
    • 2011-09-03
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    相关资源
    最近更新 更多