Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在setInterval中访问内部函数_Jquery_Timer - Fatal编程技术网

Jquery 在setInterval中访问内部函数

Jquery 在setInterval中访问内部函数,jquery,timer,Jquery,Timer,这不起作用,因为“bar未定义。”您需要传递一个直接引用bar的函数,而不是字符串,因此: (function($) { $.fn.myPlugin = function(options) { var _this; var timer1; var foo = function(n) { if (timer1 != null) return; // in action

这不起作用,因为“bar未定义。”

您需要传递一个直接引用
bar
的函数,而不是字符串,因此:

(function($)
{
    $.fn.myPlugin = function(options)
    {
        var _this;
        var timer1;

        var foo = function(n)
        {
            if (timer1 != null) return; // in action
            timer1 = setInterval("bar("+n+")", 500);
        };

        var bar = function(n)
        {
            ...
            if ( ... ) clearInterval(timer1);
        };                      

        return this.each(function()
        {
            _this = $(this);
            _this.bind("click", function(){ foo(10); });            
        });
    }
})(jQuery);
这样做:

setInterval("bar("+n+")", 500);


此外,您需要接受问题以获得任何未来的答案,您可以通过单击帮助您解决问题的答案旁边的复选标记来完成此操作。它给你一个rep,回答者rep,并帮助下一个谷歌搜索者更快地找到合适的答案。

你需要传递一个直接引用
条的函数,而不是字符串,因此:

(function($)
{
    $.fn.myPlugin = function(options)
    {
        var _this;
        var timer1;

        var foo = function(n)
        {
            if (timer1 != null) return; // in action
            timer1 = setInterval("bar("+n+")", 500);
        };

        var bar = function(n)
        {
            ...
            if ( ... ) clearInterval(timer1);
        };                      

        return this.each(function()
        {
            _this = $(this);
            _this.bind("click", function(){ foo(10); });            
        });
    }
})(jQuery);
这样做:

setInterval("bar("+n+")", 500);


此外,您需要接受问题以获得任何未来的答案,您可以通过单击帮助您解决问题的答案旁边的复选标记来完成此操作。它为您提供了回答者代表,并帮助下一位谷歌搜索者更快地找到合适的答案。

未意识到第一个参数可以是函数而不是字符串。未意识到第一个参数可以是函数而不是字符串。