请问我的按钮5为什么不能输出?

来源:2-4 IE事件处理程序及跨浏览器解决

qq__9705

2016-08-08 23:45

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div>
    <input type="button" id="button1" value="按钮1" onclick="main1()">
    <input type="button" id="button2" value="按钮2">
    <input type="button" id="button3" value="按钮3">
    <input type="button" id="button4" value="按钮4">
    <input type="button" id="button5" value="按钮5">
</div>
<script>
    function main1(){
        alert("hello world!");
    }
    //html事件处理程序

    <!----DOM 0级事件处理程序----->
    var x = document.getElementById("button2");//先获取出元素,定义对象,取得Button2对象
    x.onclick=function main2(){
        alert("通过DOM 0级事件处理程序得到");
    };
    //这是通过DOM0级添加的事件!让事件以对象的属性的形式出现。给x添加onclick属性
    x.onclick=null;

    <!----DOM 2级事件处理程序----->
    var y = document.getElementById("button3");
    y.addEventListener('click',main1,false);
    y.addEventListener('click',function(){
        alert(this.value);
    },false);
    y.removeEventListener('click',main1,false);

    <!----IE事件处理程序----->
    var z = document.getElementById("button4");
    z.attachEvent('onclick',main1);
    z.detachEvent('onclick',main1);


    <!----跨浏览器处理程序----->
    var eventUntil={
        //添加语句
        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;
            }

        }
    };
    eventUntil.addHandler(button5,'click',main1);
</script>
</body>
</html>


写回答 关注

2回答

  • 庐陵丨子瞻
    2016-08-09 09:59:09
    var button5 = document.getElementById("button5");
    var eventUntil={
        //添加语句

    在跨浏览器上面添加绑定button的代码就可以了,楼上的别在这瞎说误人子弟

    庐陵丨子瞻

    27行x.onclick=null;注释掉 37-40行:注释掉就可以了

    2016-08-10 09:05:04

    共 2 条回复 >

  • Echo_Chien
    2016-08-09 09:37:31

    19至40行的IE处理程序和下面的跨浏览器处理程序不能同时进行测试哦,将中间的几行注销分开测试就OK了

    qq__97...

    好像是可以的吧。

    2016-08-09 21:55:18

    共 1 条回复 >

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99532 学习 · 1298 问题

查看课程

相似问题