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

时间:2015-08-19 09:04:16

标签: javascript jquery

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

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


我没有看到任何警报(这意味着我无法触发Windows resize事件)。 为什么下面的代码行不起作用?

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

5 个答案:

答案 0 :(得分:1)

这是因为你的订购。您在将window.onresize功能分配给window.onresize = resize; $(window).trigger('resize'); function resize() { alert("resize event detected!"); }之前触发了调整大小事件

只需将订购更改为:

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
ParseUser parseUser = ParseUser.getCurrentUser();
    parseUser.put("columnName", username);
    parseUser.saveInBackground(new SaveCallback() {

        @Override
        public void done(ParseException e) {
            // TODO Auto-generated method stub
            if (e != null){
                e.printStackTrace();
            }else{
               //updated successfully
            }
        }
    });
&#13;
&#13;
&#13;

答案 1 :(得分:1)

@James Donnelly为您的提升问题提供了答案。

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

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

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

答案 2 :(得分:0)

您在将function resize() { alert("Resize event detected!"); } $(window).on("resize", resize) .trigger('resize'); 附加到窗口对象之前触发了它。请尝试编写以下代码:

{{1}}

答案 3 :(得分:0)

你为什么不试试这个:

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

如果你只想触发你必须放$(window).trigger('resize');在我之前发布的代码之后

答案 4 :(得分:0)

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

但是.trigger方法不会抛出本机事件,但会模拟它们。在大多数情况下,jQuery会同步调用该函数,然后您的调用顺序很重要(如其他答案所示)