猿问

求问为什么提示我的show is not defined

<body>
    <div class="box">
        <div class="one"></div>
        <div class="one two"></div>
        <div class="one three"></div>
    </div>
<script type="text/javascript" src="jquery-1.11.2.min.js"></script>
<script>
    $(function(){
        var i=0;
        var len=$(".box div").length;

        $(".box div").eq(0).show().siblings().hide();

        function show(){
            if(i==len-1){
                i=0;
            }else{
                $(".box div").eq(i).show().siblings().hide();
                i++;
            }
        };
        setInterval("show()",3000);
    })
</script>

请问大神,我这个脚本运行出错,提示VM128:1 Uncaught ReferenceError: show is not defined

好学的Lv
浏览 7898回答 8
8回答

DuffLin

setInterval("show()",3000); 这种写法必须是全局作用域下执行,不然就会报defined错误。所以去掉“$(function(){“ + ”})”就可以了 ;还有一种解决办法是: setInterval("show()",3000);  改成  setInterval(show,3000);  最完美;当然,还有一种写法 setInterval(show(), 3000);//最好不要用,函数调用正常,setInterval调用好像会出错。(以上内容 希望对你有帮助  仅供参考)

老猿

setInterval("show()",3000);这里面的show()你加了引号就是一个字符串

慕莱坞9220042

你好,show();是个方法,用引号相当于字符串了,没办法调用。

qq_伤城_0

去掉引号

qq_月的另一面_03503378

意思是你的show没有定义,试试把setInterval("show()",3000); 改成setInterval(show,3000);

好学的Lv

我发现了,不能用引号,就是“show()”里面的引号

黄志明

代码全贴上来,也好给你调试。

TOULE

不建议把方法写在$(document).ready() 里面 有可能会有问题
随时随地看视频慕课网APP

相关分类

JQuery
我要回答