类似于jQuery在文档加载后加载的方式,我需要在JavaScript脚本完成后使用一些jQuery。
我正在加载来自Google Data API的联系人数据,并且数据显示的div需要完全加载(通过javascript),如果我是对的,可以通过jQuery访问。
有没有办法做到这一点?
答案 0 :(得分:5)
假设您正在等待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();
}
}
所以,任何代码都需要在AFTER _gaq注册后运行,你可以这样添加到页面中:
waitForGaq(function() {
//here's all my code...
});
重申:只有在您添加的脚本不提供与库交互的异步方式时才需要这样递归。例如,谷歌分析是一个没有实际意义的例子,因为它提供了一种更清洁的方法:
http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html
答案 1 :(得分:1)
答案 2 :(得分:0)
使用您需要运行的jQuery代码在原始文件后面直接注入标记
<script src="foo" id="bar">
$("#bar").after(
$("<script>").text("some code")
);
答案 3 :(得分:0)
如果我理解正确,你想做类似的事情:
<script>
// your javascript code
</script>
<script>
//your jquery code
</script>