JQuery事件委托原理与用法实例分析


Posted in jQuery onMay 13, 2019

本文实例讲述了JQuery事件委托原理与用法。分享给大家供大家参考,具体如下:

事件委托就是利用事件冒泡的原理,把事件加到父级上,通过判断事件来源的子集,执行相应的操作。事件委托首先可以极大的减少事件绑定次数,其次也可以让新加入的子集元素也拥有相同的操作。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<style type="text/css">
  .list{
    background-color: gold;
    list-style-type: none;
    padding: 10px;
  }
  .list li{
    height: 30px;
    background-color: green;
    margin: 10px;
  }
</style>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
  $(function () {
    /*$('.list li').click(function () {
      $(this).css({backgroundColor:'red'});
    });*///写成事件委托的方式,把委托的事件放在父级
    $('.list').delegate('li','click',function () {
      $(this).css({backgroundColor:'red'});
    });
    //新建li元素复制给$li变量
    var $li=$('<li>9</li>');
    $('.list').append($li);//把新建元素放到ul子集最后面。这就是节点操作
  })
</script>
<body>
<ul class="list">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
</ul>
</body>
</html>

关键代码,事件委托函数

$('.list').delegate('li','click',function () {
  $(this).css({backgroundColor:'red'});

新建节点也能使用,就是因为有事件委托

//新建li元素复制给$li变量
var $li=$('<li>9</li>');
$('.list').append($li);//把新建元素放到ul子集最后面。这就是节点操作

JQuery事件列表

blur()元素失去焦点
focus()元素获得焦点 ,其实就是光标在输入框里就是叫做获得焦点
click()点击
mouseover()鼠标进入
mouseout()鼠标离开
mouseenter()鼠标进入,进入元素不触发
mouseleave()鼠标离开,离开元素不触发
hover()同时为mouseenter和mouseleave事件指定处理函数
ready()DOM加载完毕
resize()浏览器窗口大小发生改变
scroll()滚动条位置发生变化
submit()用户提交表单

blur和focus事件和提交submit

若想提交表单,form得写提交地址action,input得写name

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
  $(function () {
    /*$('#input01').focus(function () {
      alert('获得焦点');/!*其实就是光标在输入框的时候叫做获得焦点*!/
    })*///在获得焦点的时候做什么事情
    $('#input01').focus();//这就是一进去页面的时候就获得焦点
    $('#input01').blur(function () {/*失去焦点的时候处理函数*/
      alert('失去焦点');
    })
    $('#form1').submit(function () {
      alert('提交');
    })
  })
</script>
<body>
<form id="form1" action="http://www.baidu.com">
  <input type="text" name="dat01" id="input01" >
  <input type="text" name="dat02" id="input02" >
  <input type="submit" name="" value="提交" id="sub">
</form>
</body>
</html>

可以直接粘贴验证。

resize事件

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
  <script type="text/javascript">
    $(window).resize(function () {
      var $w=$(window).width();
      document.title=$w;
    })
  </script>
</head>
<body>
</body>
</html>

浏览器大小发生改变的时候,把浏览器宽度打到title上,resize事件要绑定在window上面。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具 http://tools.3water.com/code/HtmlJsRun 测试上述代码运行效果。

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

jQuery 相关文章推荐
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 jQuery
jQuery+ajax实现修改密码验证功能实例详解
Jul 06 jQuery
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
jQuery ajax调用webservice注意事项
Oct 08 jQuery
jquery获取img的src值实例介绍
Jan 16 jQuery
jQuery选择器之层次选择器用法实例分析
Feb 19 jQuery
详解jQuery中的getAll()和cleanData()
Apr 15 jQuery
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 jQuery
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
Jquery异步上传文件代码实例
Nov 13 jQuery
JQuery使用数组遍历跳出each循环
Sep 01 jQuery
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 #jQuery
使vue实现jQuery调用的两种方法
May 12 #jQuery
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
May 12 #jQuery
jQuery实现动态生成年月日级联下拉列表示例
May 11 #jQuery
详解jQuery如何实现模糊搜索
May 10 #jQuery
Easyui 去除jquery-easui tab页div自带滚动条的方法
May 10 #jQuery
jquery登录的异步验证操作示例
May 09 #jQuery
You might like
php 购物车的例子
2009/05/04 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
Vuex 入门教程
2018/01/10 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
wxPython学习之主框架实例
2014/09/28 Python
Python编程产生非均匀随机数的几种方法代码分享
2017/12/13 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
python命令 -u参数用法解析
2019/10/24 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
纯CSS3打造属于自己的“小黄人”
2016/03/14 HTML / CSS
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
美术指导求职信
2014/03/17 职场文书
老公爱的承诺书
2014/03/31 职场文书
社区助残日活动总结
2014/08/29 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
爱心募捐感谢信
2015/01/22 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
教师学习心得体会范文
2016/01/21 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书