jQuery resize function doesn't work on page load

后端 未结 5 1576
情话喂你
情话喂你 2020-11-28 14:05

How do I get this function to not only run on window resize but also on initial page load?

$(window).resize(function() {
...  
});
相关标签:
5条回答
  • 2020-11-28 14:22

    You'll want to use:

    $(document).ready(function() { /* your code */ });
    

    To make something happen onload. If you want something to work onload and onresize, you should do:

    onResize = function() { /* your code */ }
    
    $(document).ready(onResize);
    
    $(window).bind('resize', onResize);
    
    0 讨论(0)
  • 2020-11-28 14:25

    Another approach, you can simply setup a handler, and spoof a resize event yourself:

    // Bind resize event handler through some form or fashion
    $(window).resize(function(){
      alert('Resized!');
    });
    
    // Trigger/spoof a 'resize' event manually
    $(window).trigger('resize');
    
    0 讨论(0)
  • 2020-11-28 14:26
    $(document).ready(onResize);
    $(window).bind('resize', onResize);
    

    didn't work with me.

    Try

    $(window).load('resize', onResize);
    $(window).bind('resize', onResize);
    

    instead.

    (I know this question is old, but google sent me here, so...)

    0 讨论(0)
  • 2020-11-28 14:29

    I think the best solution is just to bind it to the load and resize event:

    $(window).on('load resize', function () {
        // your code
    });
    
    0 讨论(0)
  • 2020-11-28 14:38

    This behavior is by design.

    You should put your code into a named function, then call the function.

    For example:

    function onResize() { ... }
    
    $(onResize);
    $(window).resize(onresize);
    

    Alternatively, you can make a plugin to automatically bind and execute a handler:

    $.fn.bindAndExec = function(eventNames, handler) {
        this.bind(eventNames, handler).each(handler);
    };
    
    $(window).bindAndExec('resize', function() { ... });
    

    Note that it won't work correctly if the handler uses the event object, and that it doesn't cover every overload of the bind method.

    0 讨论(0)
提交回复
热议问题