(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()的第一个参数传递,并且在该匿名函数中,您可以访问作用域链中更远的变量和函数。

09-16 01:50