2010-11-11 27 views
2

我只想盡可能幹。用.events調用.ready是否有更優雅的方式?

$(document).ready(function(){ 
    var w= $(window).width(); 
    w-= (w-6) % 266; 
    if (w<272) w= 272; 
    $('#grid_container').width(w); 
}); 
jQuery.event.add(window, "load", resizeFrame); 
jQuery.event.add(window, "resize", resizeFrame); 
function resizeFrame() { 
    var w= $(window).width(); 
    w-= (w-6) % 266; 
    if (w<272) w= 272; 
    $('#grid_container').width(w); 
}; 
+0

這可能是值得什麼,文件準備和窗口負荷是不一樣的事件。 – Anurag 2010-11-11 16:07:22

+0

如果沒有準備好文檔,頁面加載然後設置寬度。隨着文檔準備好加載,如果我改變頁面大小,然後它再次改變。 – ThomasReggi 2010-11-12 04:09:09

回答

2

你可以使用th Ëbind功能:

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

請注意,您可以通過用一個空間如上所示分離指定多個事件bind

您還可以查看該事件被觸發像這樣的事件對象的type屬性:

$(window).bind('load resize', function(e){ 
    alert(e.type); 
}); 
0

我不知道,如果你想這樣的:

$(window).bind("load",resizeFrame); 

$(window).bind("resize",resizeFrame); 

編輯:

http://www.jsfiddle.net/t9fuH/

更加壓縮的辦法是:

$(window).bind("load resize", resizeFrame); 

function resizeFrame() { 
    var w= $(window).width(); 
    w-=((w-6) % 266); 
    w=w<272?272:w;  
    $('#grid_container').width(w); 
}; 
相關問題