2016-02-12 22 views
0

我有一個JavaScript變量:允許用戶更改與一個按鈕一個JavaScript變量單擊

var setClickTime = "2000"; 

我想通過點擊一個按鈕,爲用戶提供2000或4000的基礎上自己的喜好選擇。

允許用戶更改此變量的最佳方法是什麼?我曾考慮過有兩個按鈕,其中一個會在點擊時激活課程。這將需要我設置一個if/else語句來根據哪個按鈕處於活動狀態來更改變量。但我對這一點很陌生,我不知道最好的方法。

+0

首先使它工作,那麼如果這樣做,或沒有,你將有更多的信息來決定是否你的選擇是好的。 – Niloct

+0

下拉列表,兩個按鈕,單選按鈕,標籤單擊,不管 – Shockwave

+0

如果用戶要在點擊過程中選擇一個值並截取所選選項,則應該使用單選按鈕。 – DinoMyte

回答

1

只要給你的按鈕ID和綁定的聽衆。

說,你有兩個按鈕id="setTime2000"id="setTime4000",那麼你只需要:

HTML代碼:

<div> 
    <button id="setTime2000">Set time as 2000</button> 
    <button id="setTime4000">Set time as 4000</button> 
</div> 

JS代碼:

$(document).ready() { 
    var mTime = 2000; // set the default value of time 

    $("#setTime2000").click(function() { 
     mTime = 2000; 
    } 

    $("#setTime4000").click(function() { 
     mTime = 4000; 
    } 

    // ... do something with the variable set 
} 
+0

Ares Ou這是一個非常好的答案。謝謝你的例子。 –

1

你只是想要一個按鈕事件監聽器來改變它:

<button id="changeBtn">4000</button> 

JS

var setClickTime = "2000"; 

$("#changeBtn").click(function() { 

    setClickTime = "4000"; 
}) 
+0

我很喜歡此答案Cory。非常簡單可靠。我沒有想到這樣做。 –

2

首先,你有一個JavaScript變量,它無關的jQuery。

然後,如果你想要簡單的東西,沒有依賴關係。這裏一個簡單的例子:

var myValue = 2000; 
 
updateOutput(); 
 

 
a.addEventListener('click', function() { 
 
    myValue = 2000; 
 
    updateOutput() 
 
}); 
 
b.addEventListener('click', function() { 
 
    myValue = 4000; 
 
    updateOutput() 
 
}); 
 

 

 
function updateOutput() { 
 
    output.value = myValue; 
 
}
<button id="a">2000</button> 
 
<button id="b">4000</button> 
 
<input readonly id="output">

+0

你不需要2個事件。 $('button')。click(function(){myValue = $(this).text();});將是更直接和更好的方式。 – DinoMyte

+0

爲什麼你應該依靠jQuery來完成這麼簡單的任務?順便說一下,jQuery在內部也創建了兩個事件監聽器。 –

0

純JavaScript中的通用的答案。

<button class='setTime'> 
    2000 
</button> 

<button class='setTime'> 
    4000 
</button> 

純JavaScript:

var setClickTime = ""; 

var buttons = document.getElementsByClassName('setTime') 
for (i = 0; i < buttons.length; i++) { 
    this.onclick = function setTime(event) { 
    setClickTime = event.target.innerHTML; 
    alert(setClickTime); 
    } 
} 

小提琴:https://jsfiddle.net/b1vy8ahp/

0

可以定義多個radiobuttons爲更多的選擇(具有相同名稱的屬性將它們分組),然後就delegatebind一個change該組radiosbuttons的事件以獲得選定的值。

<input type="radio" name="test" value="2000">2000 
<input type="radio" name="test" value="4000">4000 
<script> 
var setClickTime; 
$('input:radio[name=test]').on('change',function() 
{ 
    setClickTime = this.value; 
}); 
</script> 

例子:https://jsfiddle.net/DinoMyte/71hgeqnb/1/

+0

你應該聽取更改事件,而不是點擊 –

+0

是。這會更有意義。 – DinoMyte

相關問題