求大家?guī)臀艺义e誤,跨瀏覽器事件處理只能實現(xiàn)IE,谷歌上沒反應(yīng)
<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html?xmlns="http://www.w3.org/1999/xhtml"> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/> <title>無標題文檔</title> </head> <body> <div> <input?type="button"?id="btn1"?value="按鈕1"?onclick="showMessage()"/> <input?type="button"?id="btn2"?value="按鈕2"?/> <input?type="button"?id="btn3"?value="按鈕3"?/> <input?type="button"?id="btn4"?value="按鈕4"?/> <input?type="button"?id="btn5"?value="按鈕5"?/> </div> <script?type="text/javascript"> function?showMessage(){ alert("第一種事件處理程序:HTML事件處理程序"); } var?btn2=document.getElementById('btn2'); btn2.onclick=function(){ alert("第二種事件處理程序:DOM0級事件處理程序"); } //btn2.onclick=null;//刪除事件 function?showMs(){ alert("第三種事件處理程序:DOM2級事件處理程序"); } var?btn3=document.getElementById('btn3'); btn3.addEventListener('click',showMs,false); btn3.addEventListener('click',function(){ alert(this.value); },false); //btn3.removeEventListener('click',showMs,false);//刪除事件 var?btn4=document.getElementById('btn4'); function?showMsg(){ alert("第四種事件處理程序:IE事件處理程序"); }//對谷歌瀏覽器無效 btn4.attachEvent('onclick',showMsg); btn4.detachEvent('onclick',showMsg); //跨瀏覽器事件處理程序,用封裝的方法 //按鈕5的JavaScript代碼如下: var?btn5=document.getElementById('btn5'); function?show(){ alert("第五種事件處理程序:跨瀏覽器事件處理程序"); } var?EventUtill={ //添加句柄 addHandler:function(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; } }, //刪除句柄 removeHandler:function(element,type,handler){ if(element.removeEventListener){ element.removeEventListener(type,handler,false); } else?if(element.detachEvent){ element.detachEvent('on'+type,handler); } else{ element['on'+type]=null; } } } EventUtill.addHandler(btn5,'click',show); </script> </body> </html>
這是我的全部代碼,出問題的代碼在最后的部分,按鈕5的事件實現(xiàn)不了。但是看不出錯在哪里,IE上點擊按鈕5可以,chrome上不行,求查錯!
2016-11-04
因為chrome中
這兩句報錯了,所以JS不會往下執(zhí)行,就沒有辦法給btn5添加事件
2016-11-04
2016-11-04
上面講有理由應(yīng)該是對的。。attachEvent這個方法在谷歌里面不支持,可能就報錯了,并不能繼續(xù)往下執(zhí)行,所以就看不到下面正確的語句效果了
2016-11-04
function?showMsg(){
????alert("第四種事件處理程序:IE事件處理程序");
}//對谷歌瀏覽器無效
btn4.attachEvent('onclick',showMsg);
btn4.detachEvent('onclick',showMsg);
//跨瀏覽器事件處理程序,用封裝的方法
去掉這些就好了,估計是有處理不了
?
2016-11-04
<input type="button" value="btn5" id="btn5"/>
可以啊,chrome測過了,沒問題啊,就用你的代碼,只取最后一部分,注釋掉沒有用的代碼,你把上面代碼注釋掉試一下。