2013-02-13 141 views
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/

感谢

+1

请在这里发布您的实际代码。 – Bergi 2013-02-13 00:06:28

回答

2

的问题是,几乎所有createWrapp您的变数是暗示全球。对clock()的连续调用将覆盖它们,并且只有最后创建的时钟打勾。使用var statements

将其更改为:

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作为一个独立的功能实际上是没有必要的,因为它仅调用一次,没有变量是本地的。

+0

哦,我知道了,我知道我是用局部和全局变量的东西,但不知道我是因为我没有使用var语句。 谢谢分配。 – Dymond 2013-02-13 00:18:14