2014-10-06 32 views
0

我怎麼知道哪個按鈕導致這個函數運行?具體來說,如果我想將函數的值設置爲等於按鈕的值?如何確定哪個按鈕叫做函數?

var foo_button = document.getElementById("foo_button"); 
var bar_button = document.getElementById("bar_button"); 
foo_button.onclick = foo_or_bar; 
bar_button.onclick = foo_or_bar; 

然後在功能以後:

function foo_or_bar(){ 

    //this should return the value of the button that was pressed (in this case "foo" 
    //or "bar" 
    return button_that_sent_me; 

} 

有沒有一種方法,我可以檢測到哪個按鈕造成這種情況出現的價值?

+13

你的意思'this'? – A1rPun 2014-10-06 19:50:40

+0

我不需要傳遞任何東西嗎?對不起,在發件人的上下文中會出現onklick的javascript – sudobangbang 2014-10-06 19:51:39

+2

。 – Pete 2014-10-06 19:52:05

回答

1

您可以使用此 @ A1rPun說或通過window.event,當您使用內聯onclicks這也有助於和其他不推薦的做法訪問按鈕:

JS

function foo_or_bar() { 
    console.log(window.event.target.value); 
    console.log(this.value); 
} 

HTML

<button id="foo_button" value="foo">internals</button> 

爲您提供了以下控制檯日誌:

foo 
foo 
0

'這個' 將與元素相關的所有信息,觸發事件:

<button onclick="foo_or_bar(this.id);" id="foo">Foo</button> 

function foo_or_bar(id) { 
    button_that_sent_me = id; 
} 
相關問題