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实现的动态文字变化输出效果示例【附演示与demo源码下载】
Mar 24 jQuery
jQuery tip提示插件(实例分享)
Apr 28 jQuery
jQuery实现一个简单的验证码功能
Jun 26 jQuery
jQuery扩展_动力节点Java学院整理
Jul 05 jQuery
基于Jquery Ajax type的4种类型(详解)
Aug 02 jQuery
jQuery实现手势解锁密码特效
Aug 14 jQuery
一个有意思的鼠标点击文字特效jquery代码
Sep 23 jQuery
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
jQuery 开发之EasyUI 添加数据的实例
Sep 26 jQuery
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
Oct 10 jQuery
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
May 04 jQuery
jquery实现淡入淡出轮播图效果
Dec 13 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阳历转农历优化版
2016/08/08 PHP
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
JS和JQ的event对象区别分析
2014/11/24 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
Python yield 小结和实例
2014/04/25 Python
详解python中的 is 操作符
2017/12/26 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
Python中dict和set的用法讲解
2019/03/28 Python
pandas 时间格式转换的实现
2019/07/06 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
外包公司软件测试工程师
2014/11/01 面试题
物流管理专业应届生求职信
2013/11/21 职场文书
毕业证丢失证明
2014/01/15 职场文书
个人求职信范例
2014/01/29 职场文书
食品安全承诺书范文
2014/08/29 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
pytorch 预训练模型读取修改相关参数的填坑问题
2021/06/05 Python
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python
正则表达式拆分url实例代码
2022/02/24 Java/Android