如何在jquery中使用不同的值多次调用函数

时间:2015-12-17 07:13:50

标签: jquery function timer call

我有一个函数,我想把它称为两次或同时使用不同的值,例如:

var stopClock = false;

function myTimer(clockTime, inClockFunction) {

    stopClock = false;
    ChatClock = {
        totalSeconds: 0,
        start: function () {
            this.interval = setInterval(function () {
                if (!stopClock) {
                    inClockFunction()
                }
                else {
                    ChatClock.pause();
                }
            }, clockTime);
        },
        pause: function () {
            clearInterval(this.interval);
            delete this.interval;
        }
    };  
    ChatClock.start();  
}

var time1 = 5000;
var func1 = function() {
   alert(time1)
   stopClock = true;
}
myTimer(5000, func1 )

var time2 = 8000;
var func2 = function() {
    alert(time2)
}
myTimer(8000, func2 )

func2不会显示警告,因为在func1中stopClock变量更改为true,如何使用不同的值多次调用?

1 个答案:

答案 0 :(得分:3)

变量stopClock是全局的,因此两个函数都访问相同的变量值。仅在函数内初始化变量,你应该没问题。以下是jsFiddle

您的javascript有更多公共/私人变量&功能冲突。这是另一个jsFiddle,其中包含所有这些(代码功能所必需)。

var timeris = function myTimer(clockTime, inClockFunction) {

    var stopClock = false;
    var ChatClock = {
        totalSeconds: 0,
        start: function () {
            this.interval = setInterval(function () {
                if (!stopClock) {
                    stopClock = inClockFunction();
                }
                else {
                    ChatClock.pause();
                }
            }, clockTime);
        },
        pause: function () {
            clearInterval(this.interval);
            delete this.interval;
        }
    };  
    ChatClock.start();  
}

var time1 = 5000;
var func1 = function() {
   alert(time1);
   return true;
}
aa = new timeris(5000, func1 );

var time2 = 8000;
var func2 = function() {
    alert(time2);
    return false;
}
bb = new timeris(8000, func2 );