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插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 jQuery
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
jQuery日期范围选择器附源码下载
May 23 jQuery
jQuery+ajax实现局部刷新的两种方法
Jun 08 jQuery
浅谈jQuery框架Ajax常用选项
Jul 08 jQuery
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
简单实现jquery隔行变色
Nov 09 jQuery
20个最常见的jQuery面试问题及答案
May 23 jQuery
jQuery中实现text()的方法
Apr 04 jQuery
jQuery zTree插件快速实现目录树
Aug 16 jQuery
javascript/jquery实现点击触发事件的方法分析
Nov 11 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 反射机制实现动态代理的代码
2008/10/22 PHP
用Simple Excel导出xls实现方法
2012/12/06 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
php查询及多条件查询
2017/02/26 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
python的mysqldb安装步骤详解
2017/08/14 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
水利公司纪检监察自我鉴定
2014/02/25 职场文书
员工工作自我评价
2014/09/26 职场文书
资产运营委托书范本
2014/10/16 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
城管个人总结
2015/02/28 职场文书
原告代理词范文
2015/05/25 职场文书