详解jQuery的核心函数和事件处理

目录
  • 事件
    • 页面载入
    • 事件委派
    • 事件切换
    • 事件
  • 总结

事件

页面载入

1.ready(fn)当DOM载入就绪可以查询及操纵时绑定一个要执行的函数

$(document).ready(function(){
  // 在这里写你的代码...
});
// 下面是简写
$(function($) {
  // 你可以在这里继续使用$作为别名...
});

2.事件处理 on(events,fn)在选择元素上绑定一个或多个事件的事件处理函数

// 给p标签添加点击事件监听
$("p").on("click", function(){
	alert( $(this).text() );
});
// 第二种写法 等效于上面
$("p").click(function(){
	alert( $(this).text() );
});

3.off(events,[fn])在选择元素上移除一个或多个事件的事件处理函数

// 移除p标签绑定的所有事件监听
$("p").off()
// 移除p标签绑定的click事件监听
$("p").off( "click")

4.bind(events,fn)为每个匹配元素的特定事件绑定事件处理函数

// 移除p标签绑定的所有事件监听
$("p").bind("click", function(){
  alert( $(this).text() );
});
// 同时绑定多个事件类型
$('#foo').bind('mouseenter mouseleave', function() {
  alert();
});

5.unbind(type,fn]])bind()的反向操作,从每一个匹配的元素中删除绑定的事件

// 把所有段落的所有事件取消绑定
$("p").unbind()
// 将段落的click事件取消绑定
$("p").unbind( "click" )

6.one(type,[data],fn)为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数

// 当所有段落被第一次点击的时候,显示所有其文本
$("p").one("click", function(){
  alert( $(this).text() );
});

事件委派

1.delegate(selector,[type],[data],fn)指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数

  <div style="background-color:red">
      <p>这是一个段落。</p>
      <button>请点击这里</button>
  </div>
// 当点击button时,隐藏或显示 p 元素
  $("div").delegate("button", "click", function () {
      $("p").slideToggle();
  });

2.undelegate([selector,[type],fn])删除由 delegate() 方法添加的一个或多个事件处理程序

// 从p元素删除由 delegate() 方法添加的所有事件处理器
$("p").undelegate();
// 从p元素删除由 delegate() 方法添加的所有click事件处理器
$("p").undelegate( "click" )

事件切换

1.hover([over,]out)一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法

over:鼠标移到元素上要触发的函数

out:鼠标移出元素要触发的函数

// 鼠标悬停的表格加上特定的类
$("td").hover(
  function () {
    $(this).addClass("hover");
  },
  function () {
    $(this).removeClass("hover");
  }
);

事件

1.blur([[data],fn])当元素失去焦点时触发 blur 事件

// 鼠标悬停的表格加上特定的类
$("td").hover(
  function () {
    $(this).addClass("hover");
  },
  function () {
    $(this).removeClass("hover");
  }
);

2.change([[data],fn])当元素的值发生改变时,会发生 change 事件

// 触发被选元素的 change 事件
$(selector).change();

3.click([[data],fn])触发每一个匹配元素的click事件

// 触发页面内所有段落的点击事件
$("p").click();

4.dblclick([[data],fn])当双击元素时,会发生 dblclick 事件

// 给页面上每个段落的双击事件绑上 "Hello World!" 警告框
$("p").dblclick( function () { alert("Hello World!"); });

5.error([[data],fn])当元素遇到错误(没有正确载入)时,发生 error 事件

// 在服务器端记录JavaScript错误日志:
$(window).error(function(msg, url, line){
  jQuery.post("js_error_log.php", { msg: msg, url: url, line: line });
});

6.focus([[data],fn])当元素获得焦点时,触发 focus 事件

// 当页面加载后将 id 为 'login' 的元素设置焦点:
$(document).ready(function(){
  $("#login").focus();
});

7.focusin([data],fn)当元素获得焦点时,触发 focusin 事件

<p><input type="text" /> <span>focusout fire</span></p>
<p><input type="password" /> <span>focusout fire</span></p>
// 获得焦点后会触发动画
$("p").focusin(function() {
	$(this).find("span").css('display','inline').fadeOut(1000);
});

8.focusout([data],fn)当元素失去焦点时触发 focusout 事件

// 获得焦点后会触发动画
$("p").focusout(function() {
  $(this).find("span").css('display','inline').fadeOut(1000);
});

9.keydown([[data],fn])当键盘或按钮被按下时,发生 keydown 事件

// 在页面内对键盘按键做出回应,可以使用如下代码
$(window).keydown(function(event){
  switch(event.keyCode) {
    // ...
    // 不同的按键可以做不同的事情
    // 不同的浏览器的keycode不同
    // 更多详细信息:     http://unixpapa.com/js/key.html
    // ...
  }
});

10.keypress([[data],fn])当键盘或按钮被按下时,发生 keypress 事件

// 计算在输入域中的按键次数
$("input").keydown(function(){
  $("span").text(i+=1);
});

11.keyup([[data],fn])当按钮被松开时,发生 keyup 事件。它发生在当前获得焦点的元素上

// 当按下按键时,改变文本域的颜色
$("input").keyup(function(){
  $("input").css("background-color","#D6D6FF");
});

12.mousedown([[data],fn])当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件

// 当按下鼠标按钮时,隐藏或显示元素
$("button").mousedown(function(){
  $("p").slideToggle();
});

13.mouseenter([[data],fn])当鼠标指针穿过元素时,会发生 mouseenter 事件

// 当鼠标指针进入(穿过)元素时,改变元素的背景色
$("p").mouseenter(function(){
  $("p").css("background-color","yellow");
});

14.mouseleave([[data],fn])当鼠标指针离开元素时,会发生 mouseleave 事件

// 当鼠标指针离开元素时,改变元素的背景色$("p").mouseleave(function(){  $("p").css("background-color","#E9E9E4");});// 当鼠标指针离开元素时,改变元素的背景色
$("p").mouseleave(function(){
  $("p").css("background-color","#E9E9E4");
});

15.mousemove([[data],fn])当鼠标指针在指定的元素中移动时,就会发生 mousemove 事件

事件坐标

  • event.clientX, event.clientY相对于视口的左上角
  • event.pageX,event.pageY 相对于页面的左上角
  • event.offsetX,event.offsetY 相对于事件元素的左上角
// 获得鼠标指针在页面中的位置
$(document).mousemove(function(e){
  $("span").text(e.pageX + ", " + e.pageY);
});

16.mouseout([[data],fn])当鼠标指针从元素上移开时,发生 mouseout 事件

// 当鼠标从元素上移开时,改变元素的背景色:
$("p").mouseout(function(){
  $("p").css("background-color","#E9E9E4");
});

17.mouseover([[data],fn])当鼠标指针位于元素上方时,会发生 mouseover 事件

// 当鼠标指针位于元素上方时时,改变元素的背景色
$("p").mouseover(function(){
  $("p").css("background-color","yellow");
});

18.mouseup([[data],fn])当在元素上放松鼠标按钮时,会发生 mouseup 事件

// 当松开鼠标按钮时,隐藏或显示元素
$("button").mouseup(function(){
  $("p").slideToggle();
});

19.resize([[data],fn])当调整浏览器窗口的大小时,发生 resize 事件

// 改变页面窗口的大小时弹出警告窗
$(window).resize(function(){
  alert("Stop it!");
});

20.scroll([[data],fn])当用户滚动指定的元素时,会发生 scroll 事件

// 当页面滚动条变化时,执行的函数:
$(window).scroll( function() {
 	 alert("Stop it!");
});

21.select([[data],fn])当 textarea 或文本类型的 input 元素中的文本被选择时,会发生 select 事件

// 触发所有input元素的select事件:
$("input").select();

22.submit([[data],fn])当提交表单时,会发生 submit 事件

// 提交本页的第一个表单:
$("form:first").submit();
// 阻止表单提交:
$("form").submit( function () {
  return false;
} );

23.unload([[data],fn])在当用户离开页面时,会发生 unload 事件

点击某个离开页面的链接

在地址栏中键入了新的 URL

使用前进或后退按钮

关闭浏览器

重新加载页面

// 页面卸载的时候弹出一个警告框:
$(window).unload( function () { alert("Bye now!"); } );

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • 深入理解jQuery 事件处理

    浏览器的事件模型 DOM第0级事件模型 1.Event实例 他的属性提供了关于当前正被处理的已触发事件的大量信息.这包括一些细节,比如在哪个元素上触发的事件.鼠标事件的坐标以及键盘事件中单击了哪个键. 2.事件冒泡 当触发 dom 树中一个元素上的事件时,事件模型会检查这个元素是否已经创建了特定的事件处理器.如果是,就会调用已创建的事件处理器.然后,事件模型会检查目标元素的父元素,看其是否已经为此事件类型创建了处理器.如果是,就调用已创建的处理器,之后检查它的父元素,以及父元素的父元素,以此类推

  • JQuery核心函数是什么及使用方法介绍

    jquery对于一个程序员来说,或多或少都听过.相信很多人在项目中也都用过.现在也有很多开源的库都是依赖于jQuery,因此熟悉jQuery还是很有必要的.使用熟练的大神可以简单看看,对于小白来说还是纯纯的干货.熟悉jQuery还是先从核心函数入手比较好,后面其他的功能都是在此核心函数的基础上扩展的. jQuery 核心函数 jQuery(expression, [context]) jQuery(html, [ownerDocument]) jQuery(html, props) jQuery

  • 浅谈jquery事件处理

    在以jQuery为基础库的前端开发体系中,经常会在一个页面上通过各种标识绑定许许多多的事件.就算简单的使用了事件代理,也还是造成了事件的分散,不好维护和管理. 那么,如何解决这个问题呢?而我,想到了backbone中的events.如下: 复制代码 代码如下: events: {     "click .icon":          "open",     "click .button.edit":   "openEditDialog

  • jQuery事件处理的特征(事件命名机制)

    JQuery中的bind()和unbind(),提供了事件的绑定和取消机制,既可以绑定html默认支持的事件,也能够绑定自定义的事件.JQuery支持自定义事件,这显然给编程带来了极大的灵活性.下面就一起学习下,jquery事件处理的一些特性. 1.JQuery中事件可以重复绑定,不会覆盖. $("#button1").bind("click",function(){ alert("func1"); }); $("#button1&qu

  • jQuery源码分析-03构造jQuery对象-源码结构和核心函数

    作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com 毕竟是边读边写,不对的地方请告诉我,多多交流共同进步.本章还未写完,完了会提交PDF. 前记: 想系统的好好写写,但是会先从感兴趣的部分开始. 近期有读者把PDF传到了百度文库上,首先感谢转载和传播,但是据为已有并设置了挺高的财富值才能下载就不好了,以后我整理好了会传到文库上.请体谅一下. 3. 构造jQuery对象 3.1 源码结构 先看看总体结构,再做分解: 复制代码 代码如下: (funct

  • 浅谈Jquery核心函数

    在Jquery中,所有的DOM对象都将封装成Jquery对象,而且只有Jquery对象才能使用Jquery方法或者属性来执行相应的操作. 所以Jquery提供了一个可以将DOM对象封装成Jquery对象的函数,就是Jquery核心函数jquery(),也称为工厂函数. jquery核心函数有7个重载,分别如下: jquery()  该函数返回一个空的jquery对象. jquery(elements)  该函数将一个或多个DOM元素转化为Jquery对象(或jquery集合) jquery(ca

  • 详解jQuery的核心函数和事件处理

    目录 事件 页面载入 事件委派 事件切换 事件 总结 事件 页面载入 1.ready(fn)当DOM载入就绪可以查询及操纵时绑定一个要执行的函数 $(document).ready(function(){ // 在这里写你的代码... }); // 下面是简写 $(function($) { // 你可以在这里继续使用$作为别名... }); 2.事件处理 on(events,fn)在选择元素上绑定一个或多个事件的事件处理函数 // 给p标签添加点击事件监听 $("p").on(&qu

  • 详解jQuery中ajax.load()方法

    jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector).load(URL,data,callback); load()函数用于从服务器加载数据,并使用返回的html内容替换当前匹配元素的内容. load()函数默认使用GET方式,如果提供了对象形式的数据,则自动转为POST方式. 因为默认使用的是Get请求方式,所以我们也可以在url加数据进行提交. 例

  • 实例详解jQuery Mockjax 插件模拟 Ajax 请求

    1. 原理 jquery-mockjax是用于mock 前台ajax向后台请求的返回数据. 原理很简单 在你js代码要发送ajax请求的地方断点一下,然后比较在[引入jquery-mockjax] 和 [没有引入jquery-mockjax]的情况下$.ajax.toString()的值情况. 很明显,引入jquery-mockjax时,这个mock库会对jquery提供的ajax函数做替换.这样就很容易能mock起来. 在实际的开发过程中,前端后台协商好了统一的接口,就各自开始自己的任务了.这

  • 详解jQuery的animate动画方法及动画排队问题解决

    animate()动画方法 作用:执行css属性集的自定义动画 语法:$(selector).animate(styles,speed,easing,callback) • 参数1: css 的属性名和运动结束位置的属性值的集合. • 参数2:可选,规定动画的速度,默认是 "normal".其他值,"slow"."normal"."fast",数字格式,单位为毫秒. • 参数3:可选,规定在不同的动画点中设置动画速度的 eas

  • 详解OpenCV中简单的鼠标事件处理

    目录 cv2.setMouseCallback函数语法 回调函数 谈及鼠标事件,就是在触发鼠标按钮后程序所做出相应的反应,但是不影响程序的整个线程.这有些像异步处理.鼠标事件响应不会一直等着我们去按而后续程序不执行,这样会造成阻塞,而是在我们不按鼠标的时候程序也会正常进行,按的时候会调用鼠标的事件响应,这个过程就像程序一边正常运行一边等待鼠标响应. 为了将鼠标响应和操作画面进行绑定,我们要创建一个回调函数: cv2.setMouseCallback函数语法 cv2.setMouseCallbac

  • 详解Spring的核心机制依赖注入

    详解Spring的核心机制依赖注入 对于一般的Java项目,他们都或多或少有一种依赖型的关系,也就是由一些互相协作的对象构成的.Spring把这种互相协作的关系称为依赖关系.如A组件调用B组件的方法,可称A组件依赖于B组件,依赖注入让Spring的Bean以配置文件组织在一起,而不是以硬编码的方式耦合在一起 一.理解依赖注入 依赖注入(Dependency Injection) = 控制反转(Inversion ofControl,IoC):当某个Java实例(调用者)需另一个Java实例(被调

  • 详解jquery选择器的原理

    详解jquery选择器的原理 html部分 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> <script src="js/minijquery.js"></script> </head> <body>

  • 详解Kotlin 高阶函数 与 Lambda 表达式

    详解Kotlin 高阶函数 与 Lambda 表达式 高阶函数(higher-order function)是一种特殊的函数, 它接受函数作为参数, 或者返回一个函数. 这种函数的一个很好的例子就是 lock() 函数, 它的参数是一个锁对象(lock object), 以及另一个函数, 它首先获取锁, 运行对象函数, 然后再释放锁: fun <T> lock(lock: Lock, body: () -> T): T { lock.lock() try { return body()

  • 详解C语言gets()函数与它的替代者fgets()函数

    在c语言中读取字符串有多种方法,比如scanf() 配合%s使用,但是这种方法只能获取一个单词,即遇到空格等空字符就会返回.如果要读取一行字符串,比如: I love BIT 这种情况,scanf()就无能为力了.这时我们最先想到的是用gets()读取. gets()函数从标准输入(键盘)读入一行数据,所谓读取一行,就是遇到换行符就返回.gets()函数并不读取换行符'\n',它会吧换行符替换成空字符'\0',作为c语言字符串结束的标志. gets()函数经常和puts()函数配对使用,puts

  • SQL中的开窗函数详解可代替聚合函数使用

    在没学习开窗函数之前,我们都知道,用了分组之后,查询字段就只能是分组字段和聚合的字段,这带来了极大的不方便,有时我们查询时需要分组,又需要查询不分组的字段,每次都要又到子查询,这样显得sql语句复杂难懂,给维护代码的人带来很大的痛苦,然而开窗函数出现了,曙光也来临了.如果要想更具体了解开窗函数,请看书<程序员的SQL金典>,开窗函数在mysql不能使用. 开窗函数与聚合函数一样,都是对行的集合组进行聚合计算.它用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不

随机推荐