Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我在尝试延迟Jquery时遇到一个类型错误,如何克服这个问题?_Javascript_Jquery - Fatal编程技术网

Javascript 我在尝试延迟Jquery时遇到一个类型错误,如何克服这个问题?

Javascript 我在尝试延迟Jquery时遇到一个类型错误,如何克服这个问题?,javascript,jquery,Javascript,Jquery,我的问题基于这个主题: 我用了那篇文章的第一个答案,结果很好。。主要地我得到一个TypeError:成功不是FF Firebug控制台、FF开发控制台和Chrome开发控制台中的函数。我想问Dan Atkinson关于成功函数的解决方案,但由于50 rep,我无法发表评论,所以这是一个单独的问题 以下是我当前的脚本,因为其中包含一些敏感信息: (function() { function getScript(url, success) { var script = document.cr

我的问题基于这个主题:

我用了那篇文章的第一个答案,结果很好。。主要地我得到一个TypeError:成功不是FF Firebug控制台、FF开发控制台和Chrome开发控制台中的函数。我想问Dan Atkinson关于成功函数的解决方案,但由于50 rep,我无法发表评论,所以这是一个单独的问题

以下是我当前的脚本,因为其中包含一些敏感信息:

(function() {
function getScript(url, success) {
    var script = document.createElement('script');
    script.src = url;
    var head = document.getElementsByTagName('head')[0],
        done = false;
    script.onload = script.onreadystatechange = function() {
        if (!done && (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete')) {
            done = true;
            success();
            script.onload = script.onreadystatechange = null;
            head.removeChild(script);
        }
    };
    head.appendChild(script);
}
getScript('http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js', function() {
    // YOUR CODE GOES HERE AND IS EXECUTED AFTER JQUERY LOADS
    {% if template contains 'product' %}
    jQuery(document).ready(function($) {
        $("a.zoomer").fancybox({
            padding: 0,
            'titleShow': false,
            overlayColor: '#000000',
            overlayOpacity: 0.2,
            fitToView: false,
            autoSize: false,
            height: 1500
        });  
  }); {% endif %}
// script truncated
});
})

})

我在试图将脚本放入{code tags}时遇到了很多麻烦,因此如果没有后期验证器给我一个警告,我无法将整个脚本放到过去。它可能是嵌套在脚本中的液体代码

以下是我收到的错误的一些屏幕截图:

我需要推迟jQuery和所有相关脚本,以提高Google页面速度。它说我们需要删除渲染阻塞脚本,其中之一就是jQuery

我试图消除成功;这使得整件事都不起作用。我尝试了丹·阿特金森在他的评论ifsuccess&&getClass.callsuccess=='[object Function]'{success;}中所说的,但我认为我做得不对

谁能告诉我成功有什么问题吗;部分?

成功是getScript的第二个参数。但您并没有为大多数getScript调用提供第二个参数

如果希望success参数为可选参数,请更改:

success();
致:


布兰登,@Dan Atkinson的成功论证方法有什么问题?ifsuccess&&getClass.callsuccess='[object Function]'{success;}您所说的消除了第二个脚本块上的错误,该脚本块刚刚引用了一组外部脚本。我保留了引用jQuery的第一个块,只保留了“success;”部分我这样做对吗?很难说没有看到你看到的错误。很可能您没有定义getClass。当然,按你的方式保存是可以的。虽然实际上您只需要定义一次getScript并将其用于两个块,但具体如何做到这一点超出了本问题的范围。。。
success();
success && success();