在网页的<head>
中,我在文档准备就绪中具有以下功能:
<script type="text/javascript">
jQuery(document).ready(function ($){
function productImageCycle(){
// Function contents...
};
});
</script>
该函数的内容调用指定元素上的jQuery Cycle插件。对于AJAX编辑的内容,我可以使用productImageCycle();
从同一文档就绪事件中的任何其他地方成功调用此内容。
然而 - 在结束</body>
标记之前 - 我调用相同的插件(以建议的方式),以便在页面加载时应用它:
<script type="text/javascript">
jQuery(document).ready(function ($){
// Function... (identical to contents of "productImageCycle")
});
</script>
但这意味着我正在重复代码。
我尝试用调用<head>
中声明的函数来替换后者,但是在页面加载时,插件无法工作,浏览器控制台告诉我未定义productImageCycle。
我可以在<head>
内的页面加载中轻松调用它,但我会相信这是一个坏主意;是吗?如果是这样,有没有办法从<body>
内调用它?
注意:我想这与范围有关 - 我试图了解这个概念,但它还没有完成。
答案 0 :(得分:1)
我建议不要在另一个函数中声明顶级函数。你为什么不转头码?这样,您也可以省略$(document).ready
以供将来通话。
目:
function productImageCycle(){
jQuery(document).ready(function ($){
// Function contents...
});
}();
(注意最后的()
,直接调用该函数。)