當用兼容的方法,給同一個對象添加不同的屬性時,是不是只添加前面的屬性,后面的就忽略了,和DOM2級不一樣啊1
<!DOCTYPE html>
<html>
<head lang="en">
? ?<meta charset="UTF-8"/>
? ?<title>事件流的DOM時間對象</title>
</head>
<body>
<div>
? ?<input type="button" value="按鈕1" id="btn1" onclick="message()"/>
? ?<input type="button" value="按鈕2" id="btn2"/>
? ?<input type="button" value="按鈕3" id="btn3"/>
</div>
<script type="text/javascript">
? ?//HTML級事件處理程序
function message(event)//封裝一個函數(shù),必須加
{
? ? ? ?alert("Hello world!");
? ? ? ?//alert(event.type);
}
? ?function message1(e)
? ?{
? ? ? ?alert(event.target);
? ?}
? ?function show(e)
? ?{
? ? ? ?alert(event.type);
? ?}
? ?var D=document.getElementById("btn3");
? ?//創(chuàng)建一個對象,對象中有兩個方法
var evently={
? ? ? ?addhandler:function(element,type,handler)
? ? ? ?{
? ? ? ? ? ?if(element.addEventListener)//不加括號,以屬性的形式判斷,一般加了括號立即執(zhí)行
{
? ? ? ? ? ? ? ?element.addEventListener(type,message,false);
? ? ? ? ? ?}
? ? ? ? ? ?else if(element.attachEvent)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?element.attachEvent("on"+type,handler);
? ? ? ? ? ?}
? ? ? ? ? ?else
{
? ? ? ? ? ? ? ?element["on"+type]=handler;
? ? ? ? ? ?}
? ? ? ?},
? ? ? ?removehandler:function(element,type,handler)
? ? ? ?{
? ? ? ? ? ?if(element. removeEventListener)//不加括號,以屬性的形式判斷,一般加了括號立即執(zhí)行
{
? ? ? ? ? ? ? ?element. removeEventListener(type,message,false);
? ? ? ? ? ?}
? ? ? ? ? ?else if(element.detachEvent)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?element.detachEvent("on"+type,handler);
? ? ? ? ? ?}
? ? ? ? ? ?else
{
? ? ? ? ? ? ? ?element["on"+type]=null;
? ? ? ? ? ?}
? ? ? ?}
? ?}
? ?evently.addhandler(D,"click",message);
? ?evently.addhandler(D,"click",show);
? ?evently.addhandler(D,"click",message1);
? ?//evently.removehandler(D,"click",message);
</script>
</body>
</html>
2016-11-02
我覺得是你在定義函數(shù)時外面的參數(shù)是envent,里面的參數(shù)調(diào)用的是e,參數(shù)不同導致的,可以試試