javascript下給元素添加事件的方法與代碼
更新時間:2007年08月13日 19:57:11 作者:
最簡單的是這樣:
<input type="button" onclick="alert(this.value)" value="我是 button" />
動態(tài)添加onclick事件:
<input type="button" value="我是 button" id="bu">
<script type="text/javascript">
var bObj=document.getElementById("bu");
bObj.onclick= objclick;
function objclick(){alert(this.value)};
</script>
如果使用匿名函數(shù) function(){},則如下面所示:
<input type="button" value="我是 button" id="bu">
<script type="text/javascript">
var bObj=document.getElementById("bu");
bObj.onclick=function(){alert(this.value)};
</script>
上面的方法其實原理都一樣,都是定義 onclick 屬性的值。值得注意的是,如果多次定義 obj.onclick,例如:obj.onclick=method1; obj.onclick=method2; obj.onclick=method3,那么只有最后一次的定義obj.onclick=method3才生效,前兩次的定義都給最后一次的覆蓋掉了。
再看 IE 中的 attachEvent:
<input type="button" value="我是拉登" id="bu">
<script type="text/javascript">
var bObj = document.getElementById("bu");
bObj.attachEvent("onclick",method1);
bObj.attachEvent("onclick",method2);
bObj.attachEvent("onclick",method3);
function method1(){alert("第一個alert")}
function method2(){alert("第二個alert")}
function method3(){alert("第三個alert")}
</script>
執(zhí)行順序是 method3 > method2 > method1 ,先進后出,與堆棧中的變量相似。需要注意的是attachEvent 中第一個參數(shù)是on開頭的,可以是 onclick/onmouseover/onfocus 等等
據(jù)說(未經(jīng)確認驗證)在 IE 中使用 attachEvent 后最好再使用 detachEvent 來釋放內(nèi)存
再看看 Firefox 中的的 addEventListener:
<input type="button" value="我是布什" id="bu">
<script type="text/javascript">
var bObj = document.getElementById("bu");
bObj.addEventListener("click",method1,false);
bObj.addEventListener("click",method2,false);
bObj.addEventListener("click",method3,false);
function method1(){alert("第一個alert")}
function method2(){alert("第二個alert")}
function method3(){alert("第三個alert")}
</script>
可以看到,在 ff 中的執(zhí)行順序是 method1 > method2 > method3 , 剛好與 IE 相反,先進先出。需要注意的是 addEventListener 有三個參數(shù),第一個是不帶“on”的事件名稱,如 click/mouseover/focus等。
<input type="button" onclick="alert(this.value)" value="我是 button" />
動態(tài)添加onclick事件:
<input type="button" value="我是 button" id="bu">
<script type="text/javascript">
var bObj=document.getElementById("bu");
bObj.onclick= objclick;
function objclick(){alert(this.value)};
</script>
如果使用匿名函數(shù) function(){},則如下面所示:
<input type="button" value="我是 button" id="bu">
<script type="text/javascript">
var bObj=document.getElementById("bu");
bObj.onclick=function(){alert(this.value)};
</script>
上面的方法其實原理都一樣,都是定義 onclick 屬性的值。值得注意的是,如果多次定義 obj.onclick,例如:obj.onclick=method1; obj.onclick=method2; obj.onclick=method3,那么只有最后一次的定義obj.onclick=method3才生效,前兩次的定義都給最后一次的覆蓋掉了。
再看 IE 中的 attachEvent:
<input type="button" value="我是拉登" id="bu">
<script type="text/javascript">
var bObj = document.getElementById("bu");
bObj.attachEvent("onclick",method1);
bObj.attachEvent("onclick",method2);
bObj.attachEvent("onclick",method3);
function method1(){alert("第一個alert")}
function method2(){alert("第二個alert")}
function method3(){alert("第三個alert")}
</script>
執(zhí)行順序是 method3 > method2 > method1 ,先進后出,與堆棧中的變量相似。需要注意的是attachEvent 中第一個參數(shù)是on開頭的,可以是 onclick/onmouseover/onfocus 等等
據(jù)說(未經(jīng)確認驗證)在 IE 中使用 attachEvent 后最好再使用 detachEvent 來釋放內(nèi)存
再看看 Firefox 中的的 addEventListener:
<input type="button" value="我是布什" id="bu">
<script type="text/javascript">
var bObj = document.getElementById("bu");
bObj.addEventListener("click",method1,false);
bObj.addEventListener("click",method2,false);
bObj.addEventListener("click",method3,false);
function method1(){alert("第一個alert")}
function method2(){alert("第二個alert")}
function method3(){alert("第三個alert")}
</script>
可以看到,在 ff 中的執(zhí)行順序是 method1 > method2 > method3 , 剛好與 IE 相反,先進先出。需要注意的是 addEventListener 有三個參數(shù),第一個是不帶“on”的事件名稱,如 click/mouseover/focus等。
您可能感興趣的文章:
- JS動態(tài)創(chuàng)建元素的兩種方法
- JS中動態(tài)創(chuàng)建元素的三種方法總結(推薦)
- JS動態(tài)創(chuàng)建DOM元素的方法
- js 動態(tài)創(chuàng)建 html元素
- js實現(xiàn)動態(tài)創(chuàng)建的元素綁定事件
- JavaScript動態(tài)創(chuàng)建div等元素實例講解
- javascript與jquery動態(tài)創(chuàng)建html元素示例
- 淺析JS動態(tài)創(chuàng)建元素【兩種方法】
- JS中動態(tài)添加事件(綁定事件)的代碼
- javascript 動態(tài)添加事件代碼
- js實現(xiàn)為a標簽添加事件的方法(使用閉包循環(huán))
- JS實現(xiàn)為動態(tài)創(chuàng)建的元素添加事件操作示例
相關文章
javascript select列表內(nèi)容按字母倒序排序與按列表倒序排列
javascript select列表內(nèi)容按字母倒序排序與按列表倒序排列...2007-08-08javascript option onclick事件ie解決方案 兼容ie,firefox
javascript option onclick事件ie解決方案 兼容ie,firefox2009-12-12IE不支持option的display樣式,只能使用remove和add
想實現(xiàn)一個很簡單的功能:當選中“中介”時,不顯示“求購”與“求租”。本以為通過display:none即可實現(xiàn),結果發(fā)現(xiàn)在option元素上使用display:none在firefox中有效,在IE6、IE7、IE8中都無效。2009-12-12控制input的CSS但不影響CheckBox以及Radio的樣式
在一些Web界面,有時候為了方便會寫一個全局的input樣式,這樣所有的樣式會立刻變化,如果能更好的區(qū)分checkbox等呢。2009-09-09javascript 動態(tài)創(chuàng)建 Option選項
javascript動態(tài)創(chuàng)建Option選項,選擇月份后動態(tài)創(chuàng)建日期。2009-07-07