jQuery事件详解


Posted in Javascript onFebruary 23, 2017

一.window事件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>New Web Project</title>
  <script type="text/javascript" src="js/jQuery1.11.1.js"></script>
  <script type="text/javascript">
   $(function(){
    alert("1");
   })
   window.onload=function
  </script>
 </head>
 <body>
  <h1>New Web Project Page</h1>
 </body>
</html>

二.鼠标事件(光棒效果)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>New Web Project</title>
  <script type="text/javascript" src="js/jQuery1.11.1.js"></script>
  <script type="text/javascript">
   $(function(){
    var aa=$("li");
    aa.mouseover(function(){
     $(this).css("background","blue")
    })
    aa.mouseout(function(){
     $(this).css("background","")
    })
   })
  </script>
 </head>
 <body>
  <ul>
   <li>呵呵</li>
   <li>嘻嘻</li>
   <li>哈哈</li>
  </ul>
 </body>
</html>

三.键盘事件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>New Web Project</title>
  <script type="text/javascript" src="js/jQuery1.11.1.js"></script>
  <script type="text/javascript">
   $(function(){
    $("input").keyup(function(event){
     var co=event.keyCode;
     alert(co);
    })
   })
  </script>
 </head>
 <body>
  <h1>呵呵</h1> 
  <input />
 </body>
</html>

四.表单事件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>New Web Project</title>
  <script type="text/javascript" src="js/jQuery1.11.1.js"></script>
  <script type="text/javascript">
   $(function(){
    $("input").focus(function(){
     $("span").addClass("myred")
    });
    $("input").blur(function(){
     $("span").removeClass("myred")
    });
   });
  </script>
 </head>
 <body>
  <h1>呵呵</h1> 
  <input /><span >啊啊啊啊啊啊</span><br />
  <input /><span >啊啊啊啊啊啊</span>
 </body>
</html>

五.绑定 解除

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>New Web Project</title>
  <script type="text/javascript" src="js/jQuery1.11.1.js"></script>
  <script type="text/javascript">
   $(function(){
    $("li").bind({
     "mouseover":function(){
      $(this).css("background","blue")
     },
     "mouseout":function(){
      $(this).css("background","")
     }
     "click":function(){
      alert($(this).text());
     }
    }).unbind("mouseover mouseout");
    });
  </script>
 </head>
 <body>
  <ul>
   <li>呵呵</li>
   <li>嘻嘻</li>
   <li>哈哈</li>
  </ul>
 </body>
</html>

JQ的live(),on(),deletage(),bind()几个的区别

bind()方法是绑定事件最直接的方法,这个方法是绑定到document上存在最久的方法,也很好的解决了兼容性方面的问题;

bind()方法的优点:

1.很好的解决了各个浏览器的兼容性问题;

2.非常方便简单的能进行事件的绑定;

3.对于利用ID选出来的元素是非常好的,不仅仅是很快的可以hook上去(因为一个页面只有一个id),而且当事件发生时,handler可以立即被执行实现方式;

bind()方法的缺点:

1.bind()不会绑定在通过bind()添加的元素上面;

2.他会绑定到所有选出来的元素上面;

3.只有当页面加载完成后才会执行bind()事件,可能会产生效率问题;

live()这个绑定方法是通过冒泡机制来进行绑定的,由于在JQ1.7以上已经不推荐使用,在此不进行说明了;

deletage()这个方法在此之前从来没有用过,看过万丈后才知道还有这么一个绑定事件的方法;

deletage()这个方法的有点像live()方法,但不同于live()方法的地方在于他不会将event绑定到所有的ducoment上面,而是由你决定将他绑定在什么上面;

deletage()的优点:

1.支持绑定到动态添加的元素上面

2.你可以选择把那个那个事件放到你指定的元素上面;

deletage()的缺点:

1.尽管减少了decoment已经很少了,但是还是需要来查找那个元素上面绑定了那个事件。需要花一定的时间。

on():其实bind(),live(),delegate()都可以用on()方法来代替;就像undind();die()和undeletage()一样可以用off()来实现一样;

on()的优点:1.提供了一种统一的绑定事件的机制。

on()的缺点:1.隐藏了一些前面方法的细节。

总结:用bind()的代价是非常大的,他会把所有的时间绑定到DOM上面;

live()zai JQ1.7上面已经不被推荐使用了;

deletage()可以在动态元素上添加绑定事件;

on()结合了前面3种方法,为绑定事件有个统一。但是ON()不支持绑定动态添加的元素

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript代码应该放在HTML代码哪个位置比较好?
Oct 16 Javascript
jquery实现简单合拢与展开网页面板的方法
Sep 01 Javascript
网页中JS函数自动执行常用三种方法
Mar 30 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
Jun 06 Javascript
JS读写CSS样式的方法汇总
Aug 16 Javascript
jQuery表单对象属性过滤选择器实例详解
Sep 13 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
Nov 21 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
Feb 24 Javascript
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
node.js 微信开发之定时获取access_token
Feb 07 Javascript
微信分享invalid signature签名错误踩过的坑
Apr 11 Javascript
Vue 的双向绑定原理与用法揭秘
May 06 Javascript
Vue2学习笔记之请求数据交互vue-resource
Feb 23 #Javascript
JavaScript基本类型值-Undefined、Null、Boolean
Feb 23 #Javascript
Javascript 链式作用域详细介绍
Feb 23 #Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
Feb 23 #Javascript
bootstrap weebox 支持ajax的模态弹出框
Feb 23 #Javascript
COM组件中调用JavaScript函数详解及实例
Feb 23 #Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
Feb 23 #Javascript
You might like
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
treepanel动态加载数据实现代码
2012/12/15 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
highcharts 在angular中的使用示例代码
2017/09/20 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
linux安装Python3.4.2的操作方法
2018/09/28 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
工商管理专业应届生求职信
2013/11/04 职场文书
秋季运动会广播稿
2014/02/22 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
学习十八大标语
2014/10/09 职场文书
采购员岗位职责范本
2015/04/07 职场文书
让子弹飞观后感
2015/06/11 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
Mysql binlog日志文件过大的解决
2021/10/05 MySQL