书签 分享 收藏 举报 版权申诉 / 14

类型JQuery快速学三之一.docx

  • 文档编号:10912874
  • 上传时间:2023-02-23
  • 格式:DOCX
  • 页数:14
  • 大小:18.58KB

 js代码:

$('#abc').bind('click',function(){

 alert('bind事件');

});

 

one事件:

为元素绑定一次性事件,该事件只会执行一次。

语法:

$('选择器').one('click',function(){})

例如:

html代码:

 Div内容

 js代码:

$('#abc').one('click',function(){

 alert('只会弹出一次');

});

 

trigger事件:

模拟用户触发事件,该事件会引起冒泡(冒泡事件会在稍后提到)

例如:

html代码:

 Div2内容Div内容

js代码:

[javascript] 

$(function(){ 

   $('#abc').click(function(){ 

       alert('test'); 

   }) 

         

   $('#abc2').click(function(){ 

       alert('test2'); 

   }) 

         

   $('#abc').trigger('click'); 

   $('#abc').click(); 

}) 

$(function(){

 $('#abc').click(function(){

  alert('test');

 })

  

 $('#abc2').click(function(){

  alert('test2');

 })

  

 $('#abc').trigger('click');

 $('#abc').click();

})程序运行的时候为id为abc的元素绑定单击事件,并且为id为abc2的元素也绑定单击事件,绑定完成之后使用trigger模拟用户的点击操作,程序弹出alert('test');和alert('test2');

如此可见,该trigger会触发事件冒泡,模拟事件还可以使用如上写到的直接调用事件($('#abc').click()),不为事件指定方法体即可,实现的效果和trigger一致。

要阻止事件冒泡可以使用:

stopPropagation(),该方法稍后会提到。

 

triggerHandler事件:

与trigger事件相似,有如下不同之处:

1)triggerHandler方法并不会触发事件的默认行为。

(例如,表单提交)。

2)trigger()会影响所有与jQuery对象相匹配的元素,而triggerHandler()仅影响第一个匹配到的元素。

3)使用triggerHandler()创建的事件,并不会在DOM树中向上冒泡。

如果事件没有被目标元素直接处理,那么它就不会进行任何处理。

4) 与普通的方法返回jQuery对象(这样就能够使用链式用法)相反,triggerHandler()返回最后一个处理的事件的返回值。

如果没有触发任何事件,会返回undefined。

 

unbind事件:

移除bind方法绑定的事件。

1)当直接使用unbind方法的时候,将去除对应元素上所有的bind方法绑定的事件,例如:

$('#abc').unbind();

2)当然unbind方法也可以指定移除具体的事件,例如:

$('#abc').unbind('click');移除id为abc上的click事件。

3)通过指定click事件类型,只有该事件类型的处理程序将解除绑定。

但是,这种方法有种负面影响,这是因为有可能在代码的其它地方在相同的元素上绑定了相同的事件处理。

为了避免该问题,对于一个健壮性和扩展性强的应用程序而言,通过在使用该方法时,会传入两个参数,例如:

$('#abc').unbind('click',handler);

对于指定两个参数的情况下:

下面的代码实现上是错误的:

[javascript]

 

   $(function(){ 

       $('#abc').bind('click',function(){ 

           alert('aa'); 

       }) 

         

       $('#btnTest').click(function(){ 

           $('#abc').unbind('click',function(){ 

               alert('abc'); 

           }); 

       }) 

   }) 

 

 

 

 

Div内容

 

按钮 

 

 $(function(){

  $('#abc').bind('click',function(){

   alert('aa');

  })

  

  $('#btnTest').click(function(){

   $('#abc').unbind('click',function(){

    alert('abc');

   });

  })

 })

Div内容

按钮

这里当点击按钮移除元素id为abc的单击事件时,移除将会失败,程序会认为这是两个不同的事件。

尽管上述代码中,两个匿名函数的内容是一样的,但是它们是在不同的地方被创建的,因此JavaScript会将它们当成是不同的函数对象。

若要解除绑定特定的事件处理函数,我们需要的是指向该函数的引用,而不是内容相同的不同函数。

4)为了移除绑定处理程序的范围进一步的缩小,我们可以使用unbind()来移除相应命名空间的处理程序。

例如:

[javascript]

 

   $(function(){ 

       $('#txtName').bind('click.abc1',function(){ 

           alert('clickabc1命名空间'); 

       }); 

         

       $('#txtName').bind('click.abc',function(){ 

           alert('click'); 

       }); 

       $('#txtName').bind('blur.abc',function(){ 

           alert('blur'); 

       }); 

         

       $('#btnTest').click(function(){ 

           $('#txtName').unbind('click.abc');//只移除id为txtName元素上命名空间为.abc的click事件  

       }) 

         

       $('#btnTest2').click(function(){ 

           $('#txtName').unbind('.abc');//移除id为txtName元素上命名空间为.abc的所有事件  

       }) 

   }) 

 

 

 

 

    

   移除abc命名空间中的点击事件 

   移除abc命名空间中的所有事件 

 

 $(function(){

  $('#txtName').bind('click.abc1',function(){

   alert('clickabc1命名空间');

  });

  

  $('#txtName').bind('click.abc',function(){

   alert('click');

  });

  $('#txtName').bind('blur.abc',function(){

   alert('blur');

  });

  

  $('#btnTest').click(function(){

   $('#txtName').unbind('click.abc');//只移除id为txtName元素上命名空间为.abc的click事件

  })

  

  $('#btnTest2').click(function(){

   $('#txtName').unbind('.abc');//移除id为txtName元素上命名空间为.abc的所有事件

  })

 })

   

   移除abc命名空间中的点击事件

   移除abc命名空间中的所有事件

5)unbind()也可以在事件处理内部解除事件处理。

例如:

[javascript]

 

   varnum=1; 

   $(function(){ 

       $('#btnTest').bind('click',function(event){//注意此处要加event  

           alert('第'+num+"次"); 

           num++; 

           if(num>3){ 

               $(this).unbind(event); 

           } 

       }) 

   }) 

 

 

 

 

调用3次就移除事件 

 

 varnum=1;

 $(function(){

  $('#btnTest').bind('click',function(event){//注意此处要加event

   alert('第'+num+"次");

   num++;

   if(num>3){

    $(this).unbind(event);

   }

  })

 })

调用3次就移除事件

当我们点击按钮到第四次时,事件已经不会再触发了,事件已经被移除。

注意:

JQuery1.7版本以上推荐使用off移除事件处理。

off事件:

移除一个事件处理。

语法:

$('元素选择器').off(事件event,[选择器selector],[,函数]);

[javascript] 

 

 

   $(function(){ 

       $('#abc').bind('click',function(){ 

           $('body').on('click','#abc1',aClick);//当点击id为abc的元素时,为body下的id为abc1的元素附加事件aClick  

       }); 

         

       functionaClick(){ 

           alert('text'); 

       } 

         

       $('#btnTest').click(function(){ 

           $('body').off('click','#abc1',aClick);//去除body中id为abc1的元素的aClick事件  

       }) 

   }) 

 

 

 

 

div内容

 

abc1内容

 

off移除 

 

 $(function(){

  $('#abc').bind('click',function(){

   $('body').on('click','#abc1',aClick);//当点击id为abc的元素时,为body下的id为abc1的元素附加事件aClick

  });

  

  functionaClick(){

   alert('text');

  }

  

  $('#btnTest').click(function(){

   $('body').off('click','#abc1',aClick);//去除body中id为abc1的元素的aClick事件

  })

 })

div内容

abc1内容

off移除

注意:

当有多个过滤参数时,只有与这些参数完全匹配的事件处理函数才会被移除。

事件委派:

(live,die,on)

Jquery1.7版本上已经不推荐使用live,die,他们都有对应的优化使用方案:

live推荐使用on,die推荐使用off,在这里我们就讲解on的用法。

on:

在选定的元素上绑定一个或多个事件处理函数。

语法:

on(事件event[,选择器selector][,要传递给事件处理函数的event.data。

data][,事件被执行要触发的函数])

$('#abc').on('click',function(){});//为id为abc的元素绑定一个点击事件,无论这个元素是已经存在的,还是动态创建(后续添加进来的)

 

事件切换:

(hover,toggle)

hover事件:

是mouseenter和mouseleve方法的结合,这是官方API给出的,其实这两个方法就是我们所熟知的mouseover和mouseout。

因为mouseenter和mouseleve这两个方法是专门针对IE的,JQuery对其进行了优化和适用。

[javascript] 

 

   $(function(){ 

       $('div').hover(function(){ 

           alert('a');//鼠标悬浮弹出  

       },function(){ 

           alert('b');//鼠标离开位置弹出  

       }) 

   }) 

 

 

 

 

200px;height:

200px;background:

#ccc;"> 

 

 $(function(){

  $('div').hover(function(){

   alert('a');//鼠标悬浮弹出

  },function(){

   alert('b');//鼠标离开位置弹出

  })

 })

200px;height:

200px;background:

#ccc;">

toggle事件:

显示或隐藏事件,当元素是隐藏时,把元素显示出来,当元素是显示时,把元素进行隐藏。

语法一:

toggle([,时间][,执行完触发的函数])

语法二:

toggle(options),有如下附加参数:

1)duration运行时间,

2

举报
举报
版权申诉
版权申诉
word格式文档无特别注明外均可编辑修改;预览文档经过压缩,下载后原文更清晰! 立即下载
配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
JQuery 快速 之一
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:JQuery快速学三之一.docx
链接地址:https://www.bdocx.com/doc/10912874.html
相关搜索
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开