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 Plupload上传插件的使用
Apr 19 jQuery
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
Apr 28 jQuery
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
jQuery 控制文本框自动缩小字体填充
Jun 16 jQuery
vue单页应用中如何使用jquery的方法示例
Jul 27 jQuery
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
jQuery选择器中的特殊符号处理方法
Sep 08 jQuery
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
jquery的 filter()方法使用教程
Mar 22 jQuery
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
菊花转动的jquery加载动画效果
Aug 19 jQuery
JavaScript枚举选择jquery插件代码实例
Nov 17 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
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
PHP中让curl支持sock5的代码实例
2015/01/21 PHP
eclipse php wamp配置教程
2016/06/30 PHP
详解php用static方法的原因
2018/09/12 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
JavaScript之WebSocket技术详解
2016/11/18 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
Python Selenium截图功能实现代码
2020/04/26 Python
前端水印的简单实现代码示例
2020/12/02 HTML / CSS
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
出国签证在职证明
2014/01/16 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
质量负责人岗位职责
2015/02/15 职场文书
小学教师岗位职责
2015/04/02 职场文书
个人业务学习心得体会
2016/01/25 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
python Tkinter的简单入门教程
2021/04/11 Python
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB