在 jQuery是一个非常常见的场景之前加载jQuery 在页面后期加载但依赖于jQuery可用的javascript的情况,特别是如果你遵循更接近你的脚本的做法</body>
.
所以基本上我想从这里开始:
<script>
someFunctionThatUsesLateJQuery(){ [code that relies on jQuery] }
</script>
...
<script src="jquery.js"></script>
<script>
$(function(){
someFunctionThatUsesLateJQuery();
});
</script>
Run Code Online (Sandbox Code Playgroud)
对于这样的事情:
<script>
_$.ready(function(){ [code that relies on jQuery] });
</script>
...
<script src="jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)
就像异步统计跟踪(álaGoogleAnalytics)一样,有没有什么可以让你注册javascript函数调用,一旦加载jQuery就可以执行,而不会遇到可怕的$ is undefined
错误?
我的意思是在没有注册和取消注册超时/间隔的情况下发生这种情况.
有没有/有没有可能在jQuery中添加某种预注册变量,它会在加载后识别和处理?
值得注意的是,我得到的具体用例是一个嵌入式JS小部件,我希望在<script>
放置的场景中发生一些DOM操作,因此在jQuery加载之前有非常真实的可能性. jQuery加载的情况发生在附近</body>
.
然后,我不想让用户进一步负担,要求他们在代码执行的正确位置注册一个特定的函数调用(这将取决于他们的实现)...我希望它"只是工作"
我有一个非常标准的AJAX请求:
$.getJSON('/products/findmatching/38647.json', {}, function(JsonData){
var tableHtml = '';
var x;
for (x in JsonData.matchingProds) {
var matchingProd = JsonData.matchingProds[x];
var buyMessage;
if ( x == 0 ) {
buyMessage = 'Buy Cheapest';
}
else {
buyMessage = 'Buy from this shop';
}
tableHtml = tableHtml + '<tr><td><img height="40" src="' + matchingProd.img_url + '" alt="' + matchingProd.name + '" /></td> \
<td><a href="' + matchingProd._page_url + '">' + matchingProd.name + '</a></td> \
<td><a href="' + matchingProd._merchant._url + '">' + matchingProd._merchant.title + …
Run Code Online (Sandbox Code Playgroud)