什么是错误的触发调整大小事件

What is wrong when trigger resizing event?

本文关键字:调整 大小事 小事件 错误 什么      更新时间:2023-09-26

我尝试自动触发调整大小事件,我看到它不起作用。然后我做如下测试:

<html>
    <head>
        <title></title>
        <script src="jquery-1.10.2.js"></script>
    </head>
    <body>
        <p>foo</p>
        <script type="text/javascript">
            $(window).trigger('resize');
            window.onresize = resize;
            function resize() {
                alert("resize event detected!");
            }
        </script>
    </body>
</html>


我没有看到任何警告(这意味着我不能触发窗口大小调整事件)。为什么下面一行代码不工作?

$(window).trigger('resize');

都是因为你的订货。在将resize函数分配给window.onresize之前触发了resize事件

只需将顺序更改为:

window.onresize = resize;
$(window).trigger('resize');
function resize() {
  alert("resize event detected!");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

@James Donnelly已经为你的吊装问题提供了答案。

但我想添加另一种方式来使用代码,因为你正在使用jQuery:

$(window).on('resize',resizefunc).resize();
function resizefunc() {
  alert("resize event detected!");
}

请注意,我已经将你的resize函数重命名为resizefunc,以避免在jquery的resize方法中混淆

resize被附加到窗口对象之前触发了它。请尝试在下面编码:

function resize() {
   alert("Resize event detected!");
}
$(window).on("resize", resize)
         .trigger('resize');

你为什么不试试这个:

$(window).on('resize',
            function resize() {
                alert("resize event detected!");
            });

如果你只是想触发,你必须输入$(window).trigger('resize');在

之前发布的代码之后

由于本机事件是异步的,我们可以假设您的代码应该可以工作。

然而,.trigger方法不是抛出本地事件,而是模拟它们。在大多数情况下,jQuery同步调用函数,那么调用的顺序很重要(如其他答案所建议的)