Jquery <;头>;从<;车身>;没有定义

Jquery <;头>;从<;车身>;没有定义,jquery,scope,Jquery,Scope,在网页的中,我在文档中具有以下功能: <script type="text/javascript"> jQuery(document).ready(function ($){ function productImageCycle(){ // Function contents... }; }); </script> 但这意味着我在重复代码 我尝试用调用中声明的函数来替换后者,但在页面加载时插件无法工

在网页的
中,我在文档中具有以下功能:

<script type="text/javascript">
    jQuery(document).ready(function ($){
        function productImageCycle(){
            // Function contents...
        };
    });
</script>
但这意味着我在重复代码

我尝试用调用
中声明的函数来替换后者,但在页面加载时插件无法工作,浏览器控制台告诉我productImageCycle未定义

我可以很容易地在
的页面加载中调用它,但我相信这是一个坏主意;它是?如果是这样,有没有办法从
中调用它


注意:我想这与作用域有关——我正试图了解这个概念,但它还没有完全起作用。

我建议不要在另一个函数中声明顶级函数。你为什么不把头号代码转过来?这样,您也可以省去
$(document).ready
以备将来调用

负责人:


(注意末尾的
()
,直接调用函数)。

这不是个坏主意。整个文档的就绪状态(不包括动态加载,如XHR调用)进入该jQuery调用。不需要将代码放在某个位置,只要它在jQueryInclude标记之后就行了。知道这一点很放心,谢谢。纯粹出于知识的考虑,我如何从主体中调用它?您应该在jQuery就绪状态之外(之前)定义您的函数。所以(
包括jQuery.js
定义函数
写出就绪状态函数
)。之后,您可以在就绪状态内调用函数。在“某些”情况下,特殊函数(带有计时器和动态加载)的行为会稍有不同,并且在加载文档时,可能无法在即时调用中正确加载。测试您自己的函数最好的方法是添加
console.log()
“bookmarks”(带有时间戳的可选)并查看代码的执行顺序。啊哈-这很有意义,感谢时间戳提示。如果您一直有问题,那么您可能希望在函数中显示代码。他们可能是造成可能延迟的罪魁祸首。也许我应该提到-在
(文档)中还有许多其他代码行。ready
。我想他们最好呆在一起。这是一个有趣的方法。
<script type="text/javascript">
    jQuery(document).ready(function ($){
        // Function... (identical to contents of "productImageCycle")
    });
</script>
function productImageCycle(){
    jQuery(document).ready(function ($){
        // Function contents...
    });
}();