javascript下給元素添加事件的方法與代碼
更新時(shí)間:2007年08月13日 19:57:11 作者:
最簡(jiǎn)單的是這樣:
<input type="button" onclick="alert(this.value)" value="我是 button" />
動(dòng)態(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>
上面的方法其實(shí)原理都一樣,都是定義 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("第一個(gè)alert")}
function method2(){alert("第二個(gè)alert")}
function method3(){alert("第三個(gè)alert")}
</script>
執(zhí)行順序是 method3 > method2 > method1 ,先進(jìn)后出,與堆棧中的變量相似。需要注意的是attachEvent 中第一個(gè)參數(shù)是on開頭的,可以是 onclick/onmouseover/onfocus 等等
據(jù)說(未經(jīng)確認(rèn)驗(yàn)證)在 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("第一個(gè)alert")}
function method2(){alert("第二個(gè)alert")}
function method3(){alert("第三個(gè)alert")}
</script>
可以看到,在 ff 中的執(zhí)行順序是 method1 > method2 > method3 , 剛好與 IE 相反,先進(jìn)先出。需要注意的是 addEventListener 有三個(gè)參數(shù),第一個(gè)是不帶“on”的事件名稱,如 click/mouseover/focus等。
<input type="button" onclick="alert(this.value)" value="我是 button" />
動(dòng)態(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>
上面的方法其實(shí)原理都一樣,都是定義 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("第一個(gè)alert")}
function method2(){alert("第二個(gè)alert")}
function method3(){alert("第三個(gè)alert")}
</script>
執(zhí)行順序是 method3 > method2 > method1 ,先進(jìn)后出,與堆棧中的變量相似。需要注意的是attachEvent 中第一個(gè)參數(shù)是on開頭的,可以是 onclick/onmouseover/onfocus 等等
據(jù)說(未經(jīng)確認(rèn)驗(yàn)證)在 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("第一個(gè)alert")}
function method2(){alert("第二個(gè)alert")}
function method3(){alert("第三個(gè)alert")}
</script>
可以看到,在 ff 中的執(zhí)行順序是 method1 > method2 > method3 , 剛好與 IE 相反,先進(jìn)先出。需要注意的是 addEventListener 有三個(gè)參數(shù),第一個(gè)是不帶“on”的事件名稱,如 click/mouseover/focus等。
您可能感興趣的文章:
- JS動(dòng)態(tài)創(chuàng)建元素的兩種方法
- JS中動(dòng)態(tài)創(chuàng)建元素的三種方法總結(jié)(推薦)
- JS動(dòng)態(tài)創(chuàng)建DOM元素的方法
- js 動(dòng)態(tài)創(chuàng)建 html元素
- js實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建的元素綁定事件
- JavaScript動(dòng)態(tài)創(chuàng)建div等元素實(shí)例講解
- javascript與jquery動(dòng)態(tài)創(chuàng)建html元素示例
- 淺析JS動(dòng)態(tài)創(chuàng)建元素【兩種方法】
- JS中動(dòng)態(tài)添加事件(綁定事件)的代碼
- javascript 動(dòng)態(tài)添加事件代碼
- js實(shí)現(xiàn)為a標(biāo)簽添加事件的方法(使用閉包循環(huán))
- JS實(shí)現(xiàn)為動(dòng)態(tài)創(chuàng)建的元素添加事件操作示例
相關(guān)文章
控制input的CSS但不影響CheckBox以及Radio的樣式
在一些Web界面,有時(shí)候?yàn)榱朔奖銜?huì)寫一個(gè)全局的input樣式,這樣所有的樣式會(huì)立刻變化,如果能更好的區(qū)分checkbox等呢。2009-09-09
jquery表單驗(yàn)證使用插件formValidator
jquery表單驗(yàn)證使用插件formValidator,可供有需求的朋友參考2012-11-11
為radio類型的INPUT添加客戶端腳本(附加實(shí)現(xiàn)JS來禁用onClick事件思路代碼)
為radio類型的INPUT添加客戶端腳本(附加實(shí)現(xiàn)JS來禁用onClick事件思路代碼),需要的朋友可以參考下。2010-11-11
javascript判斷單選框或復(fù)選框是否選中方法集錦
javascript判斷單選框或復(fù)選框是否選中方法集錦...2007-04-04

