眾所周知,不帶參數的綁定非常簡單,只要使用(文法:“document.getElementById("對象ID名").attachEvent("事件名,如onchange",函數名);”)(樣本:“document.getElementById("select_0").attachEvent("onchange",modifyFunction);”)即可。(註:以下唯寫樣本)
帶參數的綁定就要複雜一些:document.getElementById("select _0").attachEvent("onchange",function(){modifyFunction (obj,i););即在function()中寫需要執行的函數即可。當然還有另一種寫法:document.getElementById("select _0"). onchange=function(){modifyFunction (obj,i););。
綁定成功,OK。不過,慢,此時又遇到了第二個問題,傳遞過去的參數值都是同一個,並不是想象中的將i的值傳遞過去後,每個綁定的函數的參數值都不一樣。
於是乎,上網百度。經過艱難的搜尋測試,期間還找到一個如下所示的例子:
複製代碼 代碼如下:<script>
document.onclick=check;
function check() {
if(event.srcElement.type== "button ")
alert(event.srcElement.name);
}
</script>
<input type=button name=button1>
<input type=button name=button2>
此例子是通過event找到有動作的組件,然後擷取它的源,再取出name值。這樣就可以通過傳入的obj,獲得是第幾個obj,然後進行相應的操作。
只是還有個問題,經過這種操作之後,obj的值又出現了問題,不管操作哪個select,獲得的值都是最後一個。
繼續百度。
終於,在一篇文章中獲得了原因。文章轉帖如下:
我們先看一個關於Javascript利用迴圈綁定事件的例子:
例如:一個不確定長度的列表,在滑鼠經過某一條的時候改變背景。 xmlns="http://www.w3.org/1999/xhtml" >
- 第1條記錄
- 第2條記錄
- 第3條記錄
- 第4條記錄
- 第5條記錄
- 第6條記錄