当前位置: 首页 > 编程笔记 >

JavaScript事件委托用法分析

勾渝
2023-03-14
本文向大家介绍JavaScript事件委托用法分析,包括了JavaScript事件委托用法分析的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了JavaScript事件委托用法。分享给大家供大家参考。具体分析如下:

一、点击页面任何部分触发事件

创建一个script1.js文件。

(function() {

    eventUtility.addEvent(document, "click", function(evt) {

        alert('hello');

    });

}());

页面部分。

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <title></title>

</head>

<body>

    

    <script src="eventUtility.js"></script>

    <script src="script1.js"></script>

</body>

</html>

输出结果:点击页面任何一处都会弹出框。

但,我们有时候希望点击document内的某个元素来触发事件。

二、使用委托触发事件

在页面上增加a标签

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <title></title>

</head>

<body>

    

    <div>

        <p><a href="#">点我</a></p>

    </div>

    <script src="eventUtility.js"></script>

    <script src="script1.js"></script>

</body>

把script1.js修改为:

(function() {

    eventUtility.addEvent(document, "click", function(evt) {

        //获取点击对象

        var target = eventUtility.getTarget(evt);

        //获取点击对象的tag名称

        var tagName = target.tagName;

        //如果tag是a

        if (tagName === "A") {

            alert("点我了");

            //阻止链接的默认行为

            eventUtility.preventDefault(evt);

        }

    });

}());

输出结果:只有点击页面上的a标签才弹出框。

以上的好处是:无论document内增加多少a标签元素,所有a标签都具有被触发的能力。像这种方式就是事件委托。我们希望为子元素注册事件,却把事件先注册到子元素的父级元素上,这样,在该父元素之内、动态添加的、任何与子元素同类的元素都注册了事件。

如果我们把事件注册到子元素上,在document中再动态添加与子元素同类的元素,都必须为这些刚动态添加的子元素分别注册事件。

另外,事件委托很好地利用了"事件冒泡"。当点击子元素,根据"事件冒泡",该子元素的父级元素捕获了该次点击事件,并触发自己的方法。

希望本文所述对大家的javascript程序设计有所帮助。

 类似资料:
  • 主要内容:为什么要使用事件委托,事件委托实现原理,事件委托的优点,总结利用 JS 事件冒泡动态为元素绑定事件的方法称为事件委托(Event Delegation,也称为“事件代理”),是 JavaScript 中最热门的技术之一。 事件委托就是把原本需要绑定在子元素上的事件(onclick、onkeydown 等)委托给它的父元素,让父元素来监听子元素的冒泡事件,并在子元素发生事件冒泡时找到这个子元素。 举个简单的例子,整个宿舍的同学都需要去取快递,一种方法是让他们

  • 本文向大家介绍JavaScript事件委托技术实例分析,包括了JavaScript事件委托技术实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了JavaScript事件委托技术。分享给大家供大家参考。具体分析如下: 如果一个整体页面里有大量的按钮.我们就要为每一个按钮绑定事件处理程序.这样就会影响性能了. 首先每个函数都是对象,对象就会占用很多内存.内存中的对象越多,性能就越差. 其

  • 捕获和冒泡允许我们实现一种被称为 事件委托 的强大的事件处理模式。 这个想法是,如果我们有许多以类似方式处理的元素,那么就不必为每个元素分配一个处理程序 —— 而是将单个处理程序放在它们的共同祖先上。 在处理程序中,我们获取 event.target 以查看事件实际发生的位置并进行处理。 让我们看一个示例 —— 反映中国古代哲学的 八卦图。 如下所示:在新窗口中打开 在沙箱中打开 其 HTML 如

  • 本文向大家介绍JavaScript的事件代理和委托实例分析,包括了JavaScript的事件代理和委托实例分析的使用技巧和注意事项,需要的朋友参考一下 在JavaScript中,经常会碰到要监听列表中多项li的情形,假设我们有一个列表如下: 如果我们要实现以下功能:当鼠标点击某一li时,alert输出该li的内容,我们通常的写法是这样的: 当列表项比较少时,直接给每个li添加onclick事件 列

  • 问题内容: 谁能用JavaScript解释事件委托,它有什么用? 问题答案: DOM事件委派是一种机制,它通过事件“冒泡”(也称为事件传播)的魔术,通过单个公共父节点而不是每个子节点来响应ui事件。 在元素上触发事件时,将发生以下情况: 事件被调度到其目标,并且在该目标中 找到的所有事件侦听器都会被触发。 然后,冒泡事件将触发所有其他事件侦听器,这些事件侦听器可通过向上跟随父链来查找在每个连续上注

  • 本文向大家介绍JavaScript动态添加事件之事件委托,包括了JavaScript动态添加事件之事件委托的使用技巧和注意事项,需要的朋友参考一下 先给大家讲下什么是事件委托:通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件。 也就是:利用冒泡的原理,把事件加到

  • 本文向大家介绍JQuery事件委托原理与用法实例分析,包括了JQuery事件委托原理与用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JQuery事件委托原理与用法。分享给大家供大家参考,具体如下: 事件委托就是利用事件冒泡的原理,把事件加到父级上,通过判断事件来源的子集,执行相应的操作。事件委托首先可以极大的减少事件绑定次数,其次也可以让新加入的子集元素也拥有相同的操作。 一

  • 本文向大家介绍jQuery的事件委托实例分析,包括了jQuery的事件委托实例分析的使用技巧和注意事项,需要的朋友参考一下 事件委托主要是利用事件冒泡现象来实现的,对于事件委托的精准的掌握,可以有利于提高代码的执行效率。先看一段代码实例: 在以上代码中,使用bind()方法为每一个td绑定了一个click事件处理函数,这样当点击单元格的时候,就会重新设置单元格中的文本。虽然此中方式实现了需要的效果