2016-10-09 135 views
0

嘗試從HTML輸入字段獲取變量並將其作爲參數傳遞給JavaScript構造函數。我是新來的JS將函數傳遞給javascript構造函數

構造

function Stopwatch(elem,count_Up,count_Down) { 

    //Private Variables 
    var time = 0; // Time in milliseconds 
    var interval; // Used for update function 
    var offset; // 
    var countUp = count_Up 
    var countDown = count_Down 
    console.log('SWT'+countUp+count_Up) 

提升價值,以構造器

function setCountTarget() 
{ 
var countTarget_Up = document.getElementById("count_Target").value; 
return countTarget_Up; 

} 

var watch = new Stopwatch(timer,setCountTarget(),setCountTarget()); 
//Create Stopwatch object 1 
+2

你有問題嗎? – str

+0

你有什麼理由認爲你的代碼不起作用?您需要一個明確的問題陳述和一個[MCVE](其中需要包含要與之交互的HTML!) – Quentin

+0

watch對象沒有使用countTarget_Up變量。 – CollisionOfConcepts

回答

0

您不必聲明函數內的另一個變量。

function setCountTarget(){ 
    return document.getElementById("count_Target").value; 
} 

這將返回一個字符串類型。 如果你想有一個號碼,然後你可以做,

function setCountTarget(){ 
    return parseInt(document.getElementById("count_Target").value); 
} 

好,而不是對象的構造函數或實例化我會建議做一個循環。 你從用戶獲得一個數據(可能是計數的結束或開始),然後你從遞減遞減或從遞增遞減。 在你可能不需要構造函數的每個細節中考慮你的問題。 這將是很好的閱讀面向對象的JS更多。

+0

非常感謝! 添加構造函數 – CollisionOfConcepts

+0

我希望用戶在HTML字段中輸入數字,然後將該數字傳遞到我的監視構造函數中。 – CollisionOfConcepts

+0

請幫我配偶 – CollisionOfConcepts

0

很難肯定地說,但我懷疑這是一個計時問題 - 爲了獲得輸入節點的值,該節點需要在腳本被調用之前加載到DOM中。嘗試在window.onload功能包裹Stopwatch()調用,這樣就可以確保比DOM已經完全加載:

function setCountTarget() 
{ 
var countTarget_Up = document.getElementById("count_Target").value; 
return countTarget_Up; 
} 

var watch ;//I'm assuming you want this to be a global variable; 
window.onload = function(){  
    var watch = new Stopwatch(timer,setCountTarget(),setCountTarget()); 
}