我想使網站頁面滑動到另一個。所以我做了$('a')。click();函數檢查鏈接是否是本地的,如果它獲取鏈接href並將其加載到主體。jQuery .load()等待,直到內容加載
$('a').click(function(){
var href=$(this).attr('href');
$('body').load(href);
return false;
});
它看起來不錯,但我的網站也有很多js插件包括在內。執行它們需要一段時間,並且.load
動作首先顯示'js'內容不變,然後執行js。它會導致內容不好的flickr。
是否有可能使用JS的所有exectuion緩存新內容,直到完成後才更改舊的內容,以及何時全部DOM和JS完成了新內容,slideOut舊內容和slideIn新內容?
編輯:我認爲重點不在於檢測js執行,而在於檢查是否所有其他文件都已加載 - 應該在新文件的$(window).load同時觸發DOM更改。
[編輯] ------------------------------------------ ----------------------------
我的解決方案是css代碼(css始終在dom編譯之前加載)具有跨瀏覽器的不透明度爲0
.transparent{
-moz-opacity: 0.00;
opacity: 0.00;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha"(Opacity=0);
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
filter:alpha(opacity=0);
}
而且它的內容不好的Flickr通常但並不總是阻止。現在可以檢測到jQuery ajax加載的內容,並應用一些顯示超時等等。但實際上問題仍然存在。
要現在做多一點簡單的例子,對於這個問題:點擊該鏈接後
如何開始$後更改DOM(「主體」)的負載(「something.php」)3000ms火.load ('something.php')函數? (點擊後應立即啓動加載,但DOM更改必須稍後啓動)
負載有等待AJAX請求完成回調,您可以使用,而這一切都在[** **文檔](http://api.jquery.com/load/),如果你的插件有類似的回調,你也可以使用它們,否則超時可能是最簡單的解決方案。 – adeneo