JavaScript学习笔记之事件处理程序的三种方式

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>

    <!-- 事件处理程序共有三种方式: -->

    <!-- 1、html事件处理程序:直接添加到html代码中;代码量大的时候,修改不便,不推荐使用。 -->
    <button id="btn" οnclick="clickDemo()">html事件处理程序</button><br /><br />
    <script type="text/javascript">
        function clickDemo() {
            alert("Html事件处理程序!");
        }
    </script>

    <!-- 2、DOM0级事件处理程序:把一个函数直接赋值给一个html元素的事件属性; -->
    <button id="did">DOM0级事件处理程序</button><br /><br />
    <script type="text/javascript">
        var id = document.getElementById("did");

        // 1)、DOM0级事件处理程序的第一种写法:
        //id.onclick = function () {          // 此方法需要点击按钮才能触发事件;
        //    alert("DOM0级事件处理程序1!");
        //}
        //id.onclick = function () {          // 当有两个或多个事件时,最后的事件会把前面的事件全部覆盖掉。
        //    alert("DOM0级事件处理程序2!");
        //}

        id.onclick = null;      // 清除按钮点击事件;

        // 2)、DOM0级事件处理程序的第二种写法:
        //id.onclick = Demo();    // 此方法不需要点击按钮,文档加载成功之后会直接接执行该事件;
        id.onclick = Demo;        // 此方法需要点击按钮才能触发事件;
        function Demo() {
            alert("DOM0级事件处理程序3!");
        }
    </script>

    <!-- 3、DOM2级事件处理程序:使用事件句柄(addEventListener()函数 和 removeEventListener()函数) -->
    <button id="dd">DOM2级事件处理程序</button><br /><br />
    <script type="text/javascript">
        var button = document.getElementById("dd");

        button.addEventListener("click", demo1);    // 用addEventListener可以添加多个事件处理程序。
        button.addEventListener("click", demo2);
        button.addEventListener("click", demo3);

        button.removeEventListener("click", demo3); // 移除事件处理程序;

        function demo1() {
            alert("DOM2级事件处理程序1!");
        }
        function demo2() {
            alert("DOM2级事件处理程序2!");
        }
        function demo3() {
            alert("DOM2级事件处理程序3!");
        }
    </script>

    <!-- 浏览器兼容模式: -->
    <button id="ie">浏览器兼容模式</button>
    <script type="text/javascript">
        var btn = document.getElementById("ie");

        if (btn.addEventListener) {                     // 如果支持DOM2级事件处理程序,就用addEventListener;
            btn.addEventListener("click", demoTest);  // addEventListener()的事件处理类型是 "click";
        } else if (btn.attachEvent) {                   // 如果支持IE事件处理程序,就用attachEvent;
            btn.attachEvent("onclick", demoTest);     // attachEvent的事件处理类型是 "onclick";
        } else {
            btn.onclick = demoTest;                     // 否则就用DOM0级事件处理程序;
        }

        function demoTest() {
            alert("Hello World!");
        }
    </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值