2010-04-08 9 views

Antwort

18

Sie werden verwenden möchten:

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

Um etwas passieren onload zu machen. Wenn Sie etwas wollen onload und onresize arbeiten, sollten Sie tun:

onResize = function() { /* your code */ } 

$(document).ready(onResize); 

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

Dieses Verhalten ist von Entwurf.

Sie sollten Ihren Code in eine benannte Funktion einfügen und dann die Funktion aufrufen.

Zum Beispiel:

function onResize() { ... } 

$(onResize); 
$(window).resize(onresize); 

Alternativ können Sie ein Plugin binden automatisch machen und einen Handler ausführen:

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

$(window).bindAndExec('resize', function() { ... }); 

Beachten Sie, dass es nicht richtig funktioniert, wenn der Handler verwendet das event Objekt, und dass es nicht jede Überladung der bind Methode abdeckt.

1
$(document).ready(onResize); 
$(window).bind('resize', onResize); 

nicht mit mir nicht funktioniert.

Versuchen

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

statt.

(ich weiß, diese Frage ist alt, aber Google gesendet hier mir, so ...)

0

Ein weiterer Ansatz, können Sie einfach Setup einen Handler und fälschen ein Resize-Ereignis selbst:

// Bind resize event handler through some form or fashion 
$(window).resize(function(){ 
    alert('Resized!'); 
}); 

// Trigger/spoof a 'resize' event manually 
$(window).trigger('resize'); 
4

ich denke, die beste Lösung nur um es an die Last zu binden und die Größe Ereignis:

$(window).on('load resize', function() { 
    // your code 
}); 
+0

Dies ist die einfachste Antwort aller –

+0

das es einfach und sauber macht. – jamesnotjim

Verwandte Themen