为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

好学的Lv 2016-06-15 16:26:24
<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
查看完整描述

8 回答

已采纳
?
DuffLin

TA贡献3条经验 获得超5个赞

setInterval("show()",3000); 这种写法必须是全局作用域下执行,不然就会报defined错误。所以去掉“$(function(){“ + ”})”就可以了 ;

还有一种解决办法是: setInterval("show()",3000);  改成  setInterval(show,3000);  最完美;

当然,还有一种写法 setInterval(show(), 3000);//最好不要用,函数调用正常,setInterval调用好像会出错。

(以上内容 希望对你有帮助  仅供参考)

查看完整回答
4 反对 回复 2016-06-16
?
老猿

TA贡献86条经验 获得超82个赞

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

查看完整回答
1 反对 回复 2016-06-16
?
慕莱坞9220042

TA贡献377条经验 获得超508个赞

你好,

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

查看完整回答
1 反对 回复 2016-06-15
?
qq_伤城_0

TA贡献1条经验 获得超0个赞

去掉引号

查看完整回答
反对 回复 2016-06-16
?
qq_月的另一面_03503378

TA贡献1条经验 获得超0个赞

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

查看完整回答
反对 回复 2016-06-16
?
好学的Lv

TA贡献4条经验 获得超13个赞

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

查看完整回答
反对 回复 2016-06-15
?
黄志明

TA贡献11条经验 获得超13个赞

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

查看完整回答
反对 回复 2016-06-15
?
TOULE

TA贡献2条经验 获得超24个赞

不建议把方法写在$(document).ready() 里面 有可能会有问题

查看完整回答
反对 回复 2016-06-15
  • 8 回答
  • 0 关注
  • 7869 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信