类似于jQuery在文档加载后加载的方式,我需要在JavaScript脚本完成后使用jQuery的某些部分。我正在从Google Data API加载联系人数据,如果我是对的,那么显示数据的div需要完全加载(通过JavaScript)才能被jQuery访问。有什么办法可以做到吗?
llew8vvj1#
假设您正在等待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... });
重申:只有当你要添加的脚本没有提供与库交互的异步方式时,才需要像这样的递归,比如Google Analytics,它提供了一种更干净的方法,是一个没有实际意义的例子:http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html
dfty9e192#
尝试head.js它允许精确地定义何时(在特定脚本或所有脚本加载后)执行特定代码。更不用说它本身就很整洁。
3htmauhk3#
在原始标记之后直接插入需要运行的jQuery代码<script src="foo" id="bar">
<script src="foo" id="bar">
$("#bar").after( $("<script>").text("some code") );
bfrts1fy4#
如果我理解正确,您需要执行以下操作:
<script> // your javascript code </script> <script> //your jquery code </script>
4条答案
按热度按时间llew8vvj1#
假设您正在等待Google Analytics加载,现在您知道当Google Analytics加载时,_gaq将在DOM上注册,因此,排除所有其他(更好的)异步选项,您可以创建一个等待_gaq存在的函数:
因此,任何代码需要运行AFTER _gaq注册,你可以添加到页面这样:
重申:只有当你要添加的脚本没有提供与库交互的异步方式时,才需要像这样的递归,比如Google Analytics,它提供了一种更干净的方法,是一个没有实际意义的例子:
http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html
dfty9e192#
尝试head.js
它允许精确地定义何时(在特定脚本或所有脚本加载后)执行特定代码。
更不用说它本身就很整洁。
3htmauhk3#
在原始标记之后直接插入需要运行的jQuery代码
<script src="foo" id="bar">
bfrts1fy4#
如果我理解正确,您需要执行以下操作: