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实现提示语淡入效果
May 05 jQuery
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 jQuery
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 jQuery
jQuery实现上下滚动公告栏详细代码
Nov 21 jQuery
jquery拖拽自动排序插件使用方法详解
Jul 20 jQuery
jQuery实现动态添加和删除input框实例代码
Mar 26 jQuery
jquery ajax 请求小技巧实例分析
Nov 11 jQuery
jQuery实现简易聊天框
Feb 08 jQuery
jQuery实现容器间的元素拖拽功能
Dec 01 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
PHP5 面向对象程序设计
2008/02/13 PHP
由php的call_user_func传reference引发的思考
2010/07/23 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
javascript Select标记中options操作方法集合
2008/10/22 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
node.js中watch机制详解
2014/11/17 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
JS原型链怎么理解
2016/06/27 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
详解package.json版本号规则
2019/08/01 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python3 与python2 异常处理的区别与联系
2016/06/19 Python
python函数中return后的语句一定不会执行吗?
2017/07/06 Python
使用python Telnet远程登录执行程序的方法
2019/01/26 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
医院办公室主任职责
2013/12/29 职场文书
七一党建活动方案
2014/01/28 职场文书
新教师培训方案
2014/06/08 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang