3

<head>网页中,我在准备好的文档中具有以下功能:

<script type="text/javascript">
    jQuery(document).ready(function ($){
        function productImageCycle(){
            // Function contents...
        };
    });
</script>

该函数的内容在指定元素上调用 jQuery Cycle 插件。我可以在同一文档就绪事件中的其他任何地方成功调用它,productImageCycle();用于 AJAX 编辑的内容。

但是 - 就在结束</body>标记之前 - 我像这样调用相同的插件(以建议的方式),以便它适用于页面加载:

<script type="text/javascript">
    jQuery(document).ready(function ($){
        // Function... (identical to contents of "productImageCycle")
    });
</script>

但这意味着我在重复代码。

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

我可以很容易地在页面加载时从内部调用它,<head>但我相信这是一个坏主意;是吗?如果是这样,有没有办法从内部调用它<body>

注意:我想这与范围有关——我正在努力理解这个概念,但它还没有完全奏效。

4

1 回答 1

1

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

头:

function productImageCycle(){
    jQuery(document).ready(function ($){
        // Function contents...
    });
}();

(注意()最后,直接调用函数)。

于 2013-04-06T15:20:00.383 回答