2015-12-14 49 views
1

我有一個簡單的引導HTML佈局設置,其中包含2個按鈕#add#take。當從$(document).ready函數中調用它們的函數之前,一切正常,但是由於我需要重用函數,所以我決定將它們放在外面。JavaScript點擊一個HTML按鈕什麼都不做

現在當我點擊按鈕什麼都沒有發生。有人可以告訴我我做錯了什麼嗎?

codepen

HTML:

<div clas="container"> 
    <div class="row"> 
    <div class="col-xs-12"> 
     <span>Session length:</span> 
     <span class="session">25 min</span> 
     <button id="add" class="btn btn-info">+</button> 
     <button id="take" class="btn btn-info">-</button> 
    </div> 
    <div class="col-xs-12"> 
     <h1 id="timer">25:00</h1> 
    </div> 
    <div class="col-xs-12"> 
     <button id="start" class="btn btn-success">Start</button> 
     <button id="reset" class="btn btn-danger">Reset</button> 
    </div> 
    </div> 
</div> 

JS:

function addMinute() { 
    time + 60; 
} 

function removeMinute() { 
    time - 60; 
} 

function updateSession(a) { 
    $(".session").empty(); 
    $(".session").append(a + " min"); 
} 

$(document).ready(function() { 
    var time = 1500; 

    $("#add").click(function(time) { 
    addMinute(); 
    updateSession(time); 
    }) //end add.click 
}); //end document.ready 
+0

如何在不加載DOM的情況下使用jquery選擇器。 –

+0

[JavaScript中的變量範圍是什麼?](http://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript) – JJJ

回答

0

您的問題與JavaScript的範圍有關。您的var time僅在該功能中可見,而不是在外部功能中可見。您可以通過將time設置爲全局變量或將其傳遞給您想要使用的函數來修復此問題。

您可以閱讀關於JavaScript的詞彙範圍here的更多信息。

您還有其他錯誤:time + 60應該是time += 60time - 60應該是time -= 60

+0

更新後的codepen,仍然不起作用=) –

+0

您還有其他錯誤:將'time + 60'更改爲'time + = 60'和'time-60'以'time - = 60'。 – saadq

+0

@saadq事件處理程序中的時間並非OP所認爲的。傳入的時間將是事件對象。 – ste2425