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