2013-01-11 18 views
1

我使用.less爲我的CSS。我遇到的問題是因爲Jquery在無腳本完成之前運行解析無腳本文件,高度和寬度不是更正。如何啓動jQuery事件後.less完成解析

現在我設置了一個500毫秒的setTimeout來「等待」,有沒有任何回調函數可以啓動jquery的東西?

感謝

jQuery(function($){ 
    var m = $('.my-class').height(); 
    var wh = $(window).height(); 

    if(wh > m){ 
     $('.my-class').addClass('.new-class').height(wh - 300); 
    } 
}); 

我必須這樣做,得到它的工作:

jQuery(function($){ 
    var m = $('.my-class').height(); 
    var wh = $(window).height(); 

    setTimeout(function(){ 
     if(wh > m){ 
     $('.my-class').addClass('.new-class').height(wh - 300); 
     } 
    }, 500); 
}); 
+2

我不知道.LESS,但你試過用$(窗口).load? – mikakun

+0

請發表一個例子。如果頭部分中包含所有元素,則資源會按順序加載,所以這不應該成爲問題。 –

+1

請確保'async'在您的較少選項中設置爲'false'。然後,您在less.js之後放置的任何j都應該等到解析.less文件。 – ericponto

回答

2

你可以使用任何.LESS是最有可能在執行上的jQuery的。就緒()事件。所以如果你有一個無縫的款式,你可以做一些像$("p").ready(function() { //do something });。如果這不起作用,那麼您總是可以嘗試使用.resize()事件,因爲在對樣式進行更少設置時應該調整元素的大小。例如,你可以這樣做$("p").resize(function() { //do something now that the size has changed });

文檔: