2011-10-19 200 views
1

我想在頁面加載時運行一個函數,但它不工作。我在我能想到的每一個地方添加它和ONLY東西的工作原理是:很奇怪的jQuery問題

$("html").mousemove(function(event) { 
    $('#project_thumbs_container').masonry('reload'); 
}); 

我試圖拖延,但我已經使出了哈克上述方法:(

不任何人有任何建議,爲什麼我的功能將無法運行

更新:?

我使用磚石的jQuery我的問題是,當我加載使用磚石與AJAX頁面時,它顯示了他們在一個單欄$('#project_thumbs_container').masonry('reload');重置它正確,但它只適用於上述mousemove方法。

+1

你嘗試添加代碼到AJAX回調設置砌築?如果你可以分享你的代碼的一部分,我們可以幫助你更好。 – Mottie

+0

我正在使用pjax - 我已經將代碼放在了很多地方,出於某種原因,mousemove是唯一可行的。 – stewart715

+0

你在做很多Ajax調用嗎?還是隻有一個? – Mottie

回答

1

除非有人有更好的答案,我只是將代碼放在我的fadeIn();片段後Ajax調用完成:

this.fadeIn('slow', function() { 
    $('#project_thumbs_container').masonry('reload'); 
}); 

似乎工作。

+1

這正是我對你的建議......我怎麼能改進我的答案讓你接受它? –

0

嘗試類似這樣的東西。

$(document).ready(function(){ 
    $('#project_thumbs_container').masonry('reload'); 
}); 

你可以把這段代碼放在頁面的任何地方,只要已經加載了依賴關係,就可以工作。

+0

試過這個:/ – stewart715

1

這聽起來像你有兩個問題之一:

1)HTML格式不正確,這是造成錯誤,這是不允許使用文檔onReady語法當代碼正確解析:$(函數() {...});

2)砌體可能異步加載,這意味着「onReady」回調可能不是您想要使用的回調。你的Ajax調用看起來更像是這樣的:

$('body').load('index.html', function() { 
    $('#project_thumbs_container').masonry(); 
}); 
+0

或者,如果我正確理解了你的最新評論,並且使用了pjax,更像是:'$ .pjax({success:function(){...}});'將你的其他選項,並用我的答案中的函數中的代碼替換省略號。 –

+0

引發錯誤:if(typeof options.container!=='string'){throw「pjax容器必須是字符串選擇器!」 }' – stewart715

+0

啊,第一個參數應該是容器:$ .pjax('body',{success:function(){...}}); –

0

只要把你的功能在這個

$(document).ready(function() { 
    // Handler for .ready() called. 
    // your function 
}); 

當你的頁面加載功能將執行