什麼是在不使用jQuery的情況下在JavaScript中單擊按鈕時執行函數的最佳實踐?單擊按鈕時如何執行某個功能?
我要找的,看起來像這樣的解決方案:
var button = document.getElementById('myButton');
function sayHello() {
alert('hello');
}
button.attachFunctionToClick(sayHello);
什麼是在不使用jQuery的情況下在JavaScript中單擊按鈕時執行函數的最佳實踐?單擊按鈕時如何執行某個功能?
我要找的,看起來像這樣的解決方案:
var button = document.getElementById('myButton');
function sayHello() {
alert('hello');
}
button.attachFunctionToClick(sayHello);
連接事件的標準方法是這樣的:
var button = document.getElementById("myButton");
button.addEventListener("click", sayHello, false);
舊版本的IE(少於9)不支持addeventlistener,但你必須回落到attachEvent函數。
button.attachEvent('click',sayHello);
當然仍可以只添加到元件的onclick
方法是這樣的:
button.onclick = sayHello
上述3個例子假設你不傳遞任何參數到回調函數,這意味着他們將收到的唯一參數將是事件對象。
提及IE9-'attachEvent'。非常翔實的答案。 – Nope 2013-04-11 00:36:24
var button = document.getElementById('myButton');
function sayHello() {
alert('hello');
}
if(document.addEventListener)
button.addEventListener('click',sayHello,false);
else
button.attachEvent('click',sayHello);
<script>
function test() {
alert('aaa');
}
</script>
<input type="button" onclick="test()" />
或
<input type="button" id="myButton" />
這又在頁面的結尾結束標記之前:
<script>
function test() {
alert('aaa');
}
var button = document.getElementById('myButton');
button.onclick = test;
</script>
對於瀏覽器合規,這裏有一個簡單的輔助功能:
function setEvent (element, event, handler) {
if(document.addEventListener){
element.addEventListener(event, handler);
}else{
element.attachEvent("on" + event, handler, false);
}
};
重要事項:請注意"on" + event
這裏。它用於IE中的事件。查看更多here。
或者,你可以嘗試:
button.onclick = sayHello;
因爲它是DOM 0的基本組成部分,這種方法是非常廣泛的支持 ,不需要特殊的跨瀏覽器的代碼;因此它通常用於動態註冊事件偵聽器,除非需要addEventListener()的額外 功能。
attachEvent - 用於IE < 9:
將指定函數綁定到一個事件,從而使功能得到 稱爲每當對象上的事件觸發。
的addEventListener()在單個 目標寄存器的單個事件偵聽器。事件目標可以是文檔中的單個元素,文檔本身,窗口或XMLHttpRequest。
要針對相同目標,但具有不同的事件類型爲目標註冊多個事件偵聽器,調用 的addEventListener(), 事件偵聽器或捕獲的參數。
https://developer.mozilla.org/en-US/docs/DOM/element.onclick – sachleen 2013-04-11 00:29:22
https://developer.mozilla.org/en-US/docs/DOM_Client_Object_Cross-Reference/DOM_Events – SLaks 2013-04-11 00:29:29
'符合標準的瀏覽器的AddEventListener',IE <= 8的'attachEvent'。 – 2013-04-11 00:29:35