JavaScript事件委托用法分析

 更新时间:2015年01月24日 15:31:28   投稿:shichen2014  
这篇文章主要介绍了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实现适配移动端的拖动效果

    js实现适配移动端的拖动效果

    这篇文章主要为大家详细介绍了js实现适配移动端的拖动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • 详细分析Javascript中创建对象的四种方式

    详细分析Javascript中创建对象的四种方式

    这篇文章详细介绍了Javascript中创建对象的几种方式与每种方式的优缺点,其中包括工厂模式、构造函数模式、原型模式和组合使用构造函数模式和原型模式,有需要的小伙伴们一起来学习学习吧。
    2016-08-08
  • js事件冒泡实例分享(已测试)

    js事件冒泡实例分享(已测试)

    js事件冒泡实例:摘的网上的例子,但是他写的有错误,自己改正了下,已验证通过,感兴趣的朋友可以参考下哈
    2013-04-04
  • JavaScript基础之this和箭头函数详析

    JavaScript基础之this和箭头函数详析

    这篇文章主要给大家介绍了关于JavaScript基础之this和箭头函数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • JavaScript Array对象使用方法解析

    JavaScript Array对象使用方法解析

    这篇文章主要介绍了JavaScript Array对象使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 使用JavaScript实现实时搜索建议功能

    使用JavaScript实现实时搜索建议功能

    在我们的技术旅程中,JavaScript 无疑是一个不可或缺的伙伴,这篇文章主要为大家详细介绍了如何使用 JavaScript 来实现一个复杂功能,即实时搜索建议,感兴趣的可以了解下
    2024-02-02
  • 使用Vue3实现一个Upload组件的示例代码

    使用Vue3实现一个Upload组件的示例代码

    这篇文章主要介绍了使用Vue3实现一个Upload组件的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • javascript插入样式实现代码

    javascript插入样式实现代码

    最近做一个项目,需要javascript动态插入样式,结果以前的方法失效了!查了2个小时的原因竟然是自己手贱,这个最后再说
    2012-02-02
  • 微信小程序之全局配置window和tabBar案例详解

    微信小程序之全局配置window和tabBar案例详解

    小程序根目录下的 app.json 文件是小程序的全局配置文件,本文给大家分享微信小程序之全局配置window和tabBar案例讲解,感兴趣的朋友跟随小编一起看看吧
    2024-01-01
  • 微信小程序多列选择器range-key使用详解

    微信小程序多列选择器range-key使用详解

    这篇文章主要为大家详细介绍了微信小程序多列选择器range-key的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08

最新评论