JQuery事件绑定

(1)on方法

on方法是jQuery事件绑定的统一接口。后面介绍的事件绑定的那些简便方法,其实都是on方法的简写形式。

$('li').on('click', function (e){
console.log($(this).text());
});

on方法接受两个参数,第一个是事件名称,第二个是回调函数。

注意,在回调函数内部,this关键字指的是发生该事件的DOM对象。为了使用jQuery提供的方法,必须将DOM对象转为jQuery对象,因此写成$(this)

on方法允许一次为多个事件指定同样的回调函数。

$('input[type="text"]').on('focus blur', function (){
console.log('focus or blur');
});

on方法还可以为当前元素的某一个子元素,添加回调函数。

$('ul').on('click', 'li', function (e){
console.log(this);
});

子元素事件冒泡触发父元素事件,关于on方法的详细介绍:http://www.365mini.com/page/jquery-on.htm

on方法还允许向回调函数传入数据。

$("ul" ).on("click", {name: "张三"}, function (event){
console.log(event.data.name);
});

当回调函数被触发后,它们的参数通常是一个事件对象event。

$(document).on('click', function (e){
// ...
});

上面代码的回调函数的参数e,就代表事件对象event。

event对象有以下属性:

  • type:事件类型,比如click。
  • which:触发该事件的鼠标按钮或键盘的键。
  • target:事件发生的初始对象。
  • data:传入事件对象的数据。
  • pageX:事件发生时,鼠标位置的水平坐标(相对于页面左上角)。
  • pageY:事件发生时,鼠标位置的垂直坐标(相对于页面左上角)。

event对象有以下方法:

  • preventDefault:取消浏览器默认行为。
  • stopPropagation:阻止事件向上层元素传播。

(2)one()方法

one方法指定一次性的回调函数,即这个函数只能运行一次。这对提交表单很有用。

$("#button").one( "click", function() { return false; } );

one方法本质上是回调函数运行一次,即解除对事件的监听。

document.getElementById("#button").addEventListener("click", handler);

function handler(e) {
e.target.removeEventListener(e.type, arguments.callee);
return false;
}

(3)绑定事件的简便方法

  • click
  • keydown
  • keypress
  • keyup
  • mouseover
  • mouseout
  • mouseenter
  • mouseleave
  • scroll
  • focus
  • blur
  • resize
  • hover
$('li').click(function (e){
console.log($(this).text());
});

JQuery事件触发和移除

(1)trigger()事件触发方法

trigger方法用于触发回调函数,它的参数就是事件的名称。

$('li').trigger('click')

上面代码触发li元素的click事件回调函数。与那些简便方法一样,trigger方法只触发回调函数,而不会引发浏览器的默认行为。

(2)简单版事件触发方法

$('li').click()
$('li').keydown()

下面是一个捕捉用户按下escape键的函数

$(document).keyup(function(e) {
if (e.keyCode == 27) {
$('body').toggleClass('show-nav');
// $('body').removeClass('show-nav');
}
});

(3)off方法,事件方法移除

off方法用于移除事件的回调函数。

$('li').off('click')

上面代码移除li元素所有的click事件回调函数。

参考

【1】阮一峰, http://javascript.ruanyifeng.com/jquery/basic.html#toc4

最新文章

  1. Python绘图
  2. C 符号
  3. bbed的使用--查看数据文件信息 & sid信息
  4. 【读书笔记】iOS网络-HTTP-请求内容
  5. Android -- Properties使用
  6. 怎样删除github中的项目
  7. ie6下兼容问题
  8. 使用Linux的mail命令发送邮件
  9. js 每秒刷新系统时间,可停止
  10. UITableView的编辑(插入、删除、移动)
  11. Binomial Coeffcients 历届山东省省赛题
  12. C#基础1:Console类
  13. 关于Android中so解析那些事
  14. 论文阅读——Visual inertial odometry using coupled nonlinear optimization
  15. Android为TV端助力 自定义通知栏
  16. springboot linux启动方式
  17. 同时开始了SQL。。。
  18. ADC and DAC Analog Filters for Data Conversion
  19. 用一个for循环实现打印乘法口诀表
  20. FATAL ERROR: Could not find ./bin/my_print_defaults 解决方法

热门文章

  1. 【idea】全局搜索、替换只显示100条的问题
  2. nginx yaf需要注意的问题
  3. oracle python操作 增删改查
  4. Opencv之漫水填充效果
  5. 同类控件的统一操作(以TCHECKBOX为例)
  6. HTML文件直接在浏览器打开和本地服务器localhost打开有什么区别?
  7. Flink WorkCount代码
  8. docker build 错误 /usr/share/dotnet/sdk/2.1.801/Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3245: Could not resolve this reference
  9. SpringBoot开发验证码功能
  10. Python进阶----异常处理