Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅跟踪浏览器窗口调整大小_Javascript_Jquery_Events_Jquery Ui Dialog - Fatal编程技术网

Javascript 如何仅跟踪浏览器窗口调整大小

Javascript 如何仅跟踪浏览器窗口调整大小,javascript,jquery,events,jquery-ui-dialog,Javascript,Jquery,Events,Jquery Ui Dialog,我正在使用jquery UI对话框,我想相对于窗口高度和宽度调整对话框的大小,但是当我使用$(窗口).resize()或$(窗口).on('resize')时,它们也会跟踪调整模型的大小。因此,当my$(window).resize()更新对话框的高度-宽度时,模态会触发resize,从而在自身上触发另一个resize 如何将$(window).resize()限制为只调整浏览器窗口大小? //... var isBrowserResize = true; //... function p

我正在使用jquery UI对话框,我想相对于
窗口
高度和宽度调整对话框的大小,但是当我使用
$(窗口).resize()
$(窗口).on('resize')
时,它们也会跟踪调整模型的大小。因此,当my
$(window).resize()更新对话框的高度-宽度时,模态会触发resize,从而在自身上触发另一个resize

如何将$(window).resize()限制为只调整浏览器窗口大小?

//...

var isBrowserResize = true;

//...

function preventWindowResizeEvent() {
    isBrowserResize = false;
}

//...

$(window).resize(function() {
    if (isBrowserResize) {
        //...
    } else {
        isBrowserResize = true;
    }
});

您可以从任何
resize
中调用
preventWindowResizeEvent
,您不想为主窗口
resize

运行事件,以便仅缩小到实际的浏览器窗口大小:

var onBrowserReszie = function(e){
    if(e.target === window){
     // Do something here spcific to browser window resize   
    }
}

$(window).on("resize",onBrowserReszie)

我如何在不改变任何现有代码(例如jqeuryui对话框大小)的情况下实现这个想法?这是一个解决方案,但非常模糊……您需要实现它,因此不可能不更改代码。我认为您可以这样做:$(“*”).resize(函数(){if($(this)!==$(窗口))preventWindowResizeEvent();});注意,我没有测试这个,也不知道它是否有效,所以我没有将它添加到我的答案中,但我认为值得一试。如果可行,请告诉我,这样我将编辑我的答案以添加此函数,以便将来人们可以轻松解决此问题。
$(window).on(“resize”,function(e){If(e.target==window)console.log(“window”)
这似乎有效,并且只有在调用方元素为window时才会触发,所以不会有循环函数调用。”$(“*”).resize()`在我看来是个坏习惯。