(function($){
$.fn.slideshow = function(){
function init(obj){
setInterval("startShow()", 3000);
}
function startShow(){
alert('h');
}
return this.each(function(){
init(this);
});
}
})(jQuery);
我遇到错误
startShow is not defined
最佳答案
更改
setInterval("startShow()", 3000);
至
setInterval(startShow, 3000);
当将字符串传递给setInterval()时,内部代码将在当前作用域之外执行。无论如何只是传递函数更合适。如果省略括号,可以像其他变量一样传递函数。
如果需要传递变量,则可以使用类似于the one Guffa provided的解决方案:
setInterval(function () { startShow(myVar); }, 3000);
这将创建一个匿名函数作为setInterval()的第一个参数传递,并且在该匿名函数中,您可以访问作用域链中更远的变量和函数。