1

所以我有这个时钟在 getDate 函数之后运行,它工作得非常顺利。我可以开始运行时钟的包装,当点击包装时,它开始使用事件处理程序移动。问题是我可以在没有之前停止工作的情况下运行时钟乘法时间。我知道这些功能正在相互覆盖,我一直在尝试围绕该功能移动,但我无法启动多个时钟。

我有Clock()包装其他功能的功能。我有一个createWrapp(), 动态创建函数的类,然后我有 eventlistner 在单击换行时启动时钟。

三者是这样的。

function clock(){
    function createWrapp(){
        createElementsWithClass;
    } 
    createWrapp();
    function Wrapp(){
        eventlistner connected to "clock-window-wrapper"
    }
    function myFunction(){ 
        startClock();
    }
}

这是我的 jsFiddle。

http://jsfiddle.net/dymond/nufwb/1/

谢谢

4

1 回答 1

2

问题是几乎所有变量createWrapp都是隐式全局的。连续调用clock()将覆盖它们,并且只有最后创建的时钟才会滴答作响。使用var语句

将其更改为:

function clock() {

    var outerDiv = createElementWithClass('div', 'clock-window-wrapper'),
        innerDiv = createElementWithClass('div', 'clock-menubar-wrapper');
    outerDiv.appendChild(innerDiv);
    document.getElementById("page-content-wrapper").appendChild(outerDiv);

    var clock_windows_wrapper_close = createElementWithClass('div', 'close');
    innerDiv.appendChild(clock_windows_wrapper_close);

    var clock_toolbar_wrapper_close = createElementWithClass('div', 'clock-content-wrapper');
    outerDiv.appendChild(clock_toolbar_wrapper_close);

    var hours = createElementWithClass('ul', 'clock-digit-wrapper hour');
    clock_toolbar_wrapper_close.appendChild(hours);
    clock_toolbar_wrapper_close.appendChild(document.createTextNode(' ')); // Add this ##WTF

    var minutes = createElementWithClass('ul', 'clock-digit-wrapper minute');
    clock_toolbar_wrapper_close.appendChild(minutes);
    clock_toolbar_wrapper_close.appendChild(document.createTextNode(' ')); // And this ##
    var seconds = createElementWithClass('ul', 'clock-digit-wrapper second');
    clock_toolbar_wrapper_close.appendChild(seconds);

    var hour1 = createElementWithClass('li', "clock-digit-four");
    var hour2 = createElementWithClass('li', "clock-digit-one");
    hours.appendChild(hour1);
    hours.appendChild(hour2);

    var minute1 = createElementWithClass('li', "clock-digit-three");
    var minute2 = createElementWithClass('li', "clock-digit-three");
    minutes.appendChild(minute1);
    minutes.appendChild(minute2);

    var sec1 = createElementWithClass('li', "clock-digit-three");
    var sec2 = createElementWithClass('li', "clock-digit-seven");
    seconds.appendChild(sec1);
    seconds.appendChild(sec2);

createWrapp作为一个单独的函数实际上是没有必要的,因为它只被调用一次并且没有变量是它的本地变量。

于 2013-02-13T00:13:07.987 回答