2013-02-13 144 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