function addHand(element,type,handler) 一樣可以實現(xiàn),為什么要多加一個變量并且用句柄?用句柄有什么好處
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>無標題文檔</title>
<script>
function showmes()
{alert("none");}
window.onload=function(){?
var btn=document.getElementById("btn");
function addHand(element,type,handler)
? ?{
? ?if(element.addEventListener)?
? ? ? { element.addEventListener(type,handler,false);}
else if(element.attachEvent)?
?{ element.attachEvent('on'+type,handler);}
else?
?{ element['on'+type]=handler;}
? ? }
addHand(btn,'click',showmes);
}
</script>
</head>
<body>
<input type="button" value="按鈕" id="btn">
</body>
</html>
想問一下大家,我 這樣寫一樣可以實現(xiàn),為什么要多加一個變量并且用句柄?用句柄有什么好處,說實話, 我感覺寫句柄的格式怪怪的
2017-10-05
element.addEventListener是用來兼容非IE瀏覽器的,采用的是DOM2級事件處理方式 ?
element.attachEvent是來兼容IE瀏覽器的 ?
element["on"+type]=handler是在前兩種都不兼容的情況下采用DOM0級事件處理(在現(xiàn)在瀏覽器中一般不會執(zhí)行這里的代碼)
2017-03-24
我又回來了。。。。建議大家看完慕課網(wǎng)教程之后看看書《javascript高級程序設計》。。。。在javascript語言中,一切皆對象,對象有屬性和方法,這個句柄就是一個指向這個函數(shù)的指針。。添加的這個變量就是一個用字面量表示的對象。。。你用函數(shù)實現(xiàn)也可以,但是這個函數(shù)作用域是全局的。就像在C語言里,你不論變量是什么類型(全局的還是函數(shù)里的),都設置為全局變量。那肯定是不合適的。所以你要把這個函數(shù)封裝到某個對象里,調(diào)用的時候,對象.屬性(或者方法)就可以了。
2017-03-18
你找到滿意的答案了嗎?
2016-11-06
同求大神解答一下。。
2016-10-12
我也是第一次知道有句柄,這樣封裝和引用java庫函數(shù)方法一樣了,很好理解和使用
2016-10-12
兼容各大瀏覽器,?element.attachEvent('on'+type,handler)是IE的;?IE不支持element.addEventListener(type,handler,false)