JQuery_绑定事件

ゞ 浴缸里的玫瑰 2022-05-20 23:42 450阅读 0赞

绑定:
绑定事件:

一.如何给元素同时绑定两个事件?
方法一:
链式编程

  1. $('button').click(function(){
  2. alert('我是click事件!')
  3. }).mouseenter(function(){
  4. alert('我是mouseenter事件!')
  5. })

方法二:
用bind绑定事件:事件之间用空格隔开

  1. //bind绑定两个事件
  2. $('button').bind('click mouseenter',function(){
  3. alert('我是click事件!')
  4. })

那如果想要不同的事件触发不同的函数呢?

  1. $('button').bind({
  2. 'click':function(){
  3. alert('点击触发事件!')
  4. },
  5. 'mouseleave':function(){
  6. alert('mouseleave事件!')
  7. }
  8. })

如果我们想要给事件传参数怎么办?

bind有三个参数,第二个参数是传进函数的参数

  1. //bind有三个参数,第二个参数是传进函数的参数
  2. $('button').bind('click','我是传进去的数据',function(e){
  3. alert(e.data);
  4. });

效果:
这里写图片描述
当然呢,这个参数合法的对象都可以,也可以传对象

  1. $('button').bind('click', {name:'ww'}, function (e) {
  2. alert(e.data.name);
  3. })

效果:
这里写图片描述
取对象值的话调用对象的属性值

二.给多个元素绑定事件

  1. //给多个元素绑定事件,绑定事件会消耗一些事件,为了优化
  2. $('li').bind('click',function(){
  3. alert($(this).html())
  4. });

如何优化?

事件委托

委托给需要绑定事件的父元素

jQuery的delegate函数:

  1. //delegate绑定方式
  2. $('ul').delegate('li','click',function(){
  3. alert($(this).html())
  4. });

delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。

三.事件只触发一次
在通常的情况下,jQuery的事件可以无数次的调用,那如何只触发一次呢?
one事件,只触发一次

  1. $('button').one('click', {name:'ww'}, function (e) {
  2. alert(e.data.name);
  3. })

事件触发一次,再次点击没用

目前来看,我们绑定事件有三种方式: bind、one、delegate,有什么方式可以不用区分使用?
jQuery推出了on绑定事件

四.on绑定事件(1.7版本后支持)
on 强烈推荐使用:集上面所有的方法于一身

  1. //on 绑定事件
  2. $('ul').on('click','li',function(){
  3. alert($(this).html())
  4. });

同时,第二个参数是div的子元素,可以用jQuery的选择器来指定触发事件源

效果:
这里写图片描述
注意:给div绑定事件,触发的是 h1:eq(1), $(this)指向的是触发事件的事件源

发表评论

表情:
评论列表 (有 0 条评论,450人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jQuery动态事件

    jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定。在1.7版本以前使用live。但是在1.8

    相关 jQuery--解除事件

    解除事件绑定 在元素绑定事件之后,当在某个时刻不再需要该事件处理时,可以解除所绑定的事件。在jQuery中提供了unbind()和undelegate()方法,分别用于解