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中clone()函数实现表单中增加和减少输入项
May 13 jQuery
使用jQuery实现页面定时弹出广告效果
Aug 24 jQuery
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
jQuery实现标签子元素的添加和赋值方法
Feb 24 jQuery
jQuery实现列表的增加和删除功能
Jun 14 jQuery
jQuery中each遍历的三种方法实例分析
Sep 07 jQuery
jQuery轻量级表单模型验证插件
Oct 15 jQuery
jQuery属性选择器用法实例分析
Jun 28 jQuery
jquery图片预览插件实现方法详解
Jul 18 jQuery
jQuery中DOM常见操作实例小结
Aug 01 jQuery
jQuery实现每日秒杀商品倒计时功能
Sep 06 jQuery
jQuery实现雪花飘落效果
Aug 02 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中使用curl_init函数的说明
2010/11/02 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
Express进阶之log4js实用入门指南
2018/02/10 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
python网络编程之文件下载实例分析
2015/05/20 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
使用pygame写一个古诗词填空通关游戏
2019/12/03 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
关于python中remove的一些坑小结
2021/01/04 Python
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
应届生会计电算化求职信
2013/10/03 职场文书
个人自我鉴定范文
2013/10/04 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
工作失误检讨书范文
2015/01/26 职场文书
导游词之吉林花园山
2019/10/17 职场文书
OpenCV实现反阈值二值化
2021/11/17 Java/Android