與文檔加載後jQuery加載的方式類似,JavaScript腳本完成後需要一定的jQuery。在JavaScript腳本完成後加載jQuery腳本
我正在從Google Data API加載聯繫人數據,並且數據顯示的div需要完全加載(通過javascript)才能被jQuery訪問(如果我是對的)。
有沒有辦法做到這一點?
與文檔加載後jQuery加載的方式類似,JavaScript腳本完成後需要一定的jQuery。在JavaScript腳本完成後加載jQuery腳本
我正在從Google Data API加載聯繫人數據,並且數據顯示的div需要完全加載(通過javascript)才能被jQuery訪問(如果我是對的)。
有沒有辦法做到這一點?
假設您正在等待Google Analytics加載。現在,您知道當Google Analytics加載時,_gaq將在DOM上註冊。因此,除非所有其他(更好)的異步選項,您可以創建一個等待_gaq存在的函數:
waitForGaq = function(fn, attemptsLeft) {
var tick = attemptsLeft || 30;
if (typeof(_gaq) != 'object' || !_gaq._getAsyncTracker) {
//_gaq isn't registered yet
if (tick > 1) {
//recurse
setTimeout(function() {
waitForGaq(fn, tick - 1);
}, 100)
}
else {
//no ticks left, log error
log('failed to load window.gaq');
}
}
else {
//gaq is loaded, fire fn
fn();
}
}
因此,任何代碼需要運行後_gaq被註冊,你可以添加到頁面正是如此:
waitForGaq(function() {
//here's all my code...
});
重申:遞歸像這僅僅是必要的,如果你要添加的腳本不提供與庫交互的異步方式。谷歌分析爲一體,是怎樣的一個沒有實際意義例子,因爲它提供了一個更簡潔的方法:
http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html
後直接原來你需要運行
<script src="foo" id="bar">
$("#bar").after(
$("<script>").text("some code")
);
如果我理解正確的jQuery代碼注入一個標籤,你想要做的事,如:
<script>
// your javascript code
</script>
<script>
//your jquery code
</script>
javascript完成後做了什麼?你想要做什麼? – Victor 2011-02-02 23:48:16
「JavaScript腳本完成後」的意思是什麼?你的意思是,在一些特定的JavaScript函數調用返回後? – Pointy 2011-02-02 23:48:33