Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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 - Fatal编程技术网

Javascript 触发调整事件大小时出现了什么问题?

Javascript 触发调整事件大小时出现了什么问题?,javascript,jquery,Javascript,Jquery,我尝试自动触发调整大小事件,我发现它不起作用。然后我做了如下测试: <html> <head> <title></title> <script src="jquery-1.10.2.js"></script> </head> <body> <p>foo</p> <script typ

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

<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>

这是因为你点的菜。在将
resize
函数指定给
window.onresize
之前,您正在触发resize事件

只需将订单更改为:

window.onresize=调整大小;
$(window.trigger('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');在我之前发布的代码之后

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

但我想添加另一种使用代码的方法,因为您使用的是jQuery:

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

请注意,我已将resize函数重命名为resizefunc,以避免jquery的resize方法出现混乱。

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


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

同样的代码,我的最终目的是如何使
$(窗口)。触发器('resize')有效。@raghavendra无效。调整大小事件不是手动触发的<代码>$(窗口).trigger('resize')在您的演示中不起任何作用。警报不会出现在沙盒中。在新的html页面中尝试它working@raghavendra这是因为
$(window).trigger('resize')没有做任何事情,这是OP的问题,请参阅我的答案(链接在上面的评论中),然后您将看到原因。为什么人们会给第一个工作答案-2@詹姆斯唐纳利:为什么它用小提琴演奏。Curious@TributetoAPJKalamSirOP的代码?没有。无论如何,在调整结果帧的大小之前。此时
window.onresize=resize已被调用。手动
$(窗口).trigger('resize'),但不会触发
resize()
函数。
$(window).on('resize',resizefunc).resize();
function resizefunc() {
  alert("resize event detected!");
}