第十三章:第16节jQuery对象方法——事件绑定

更新于:2018-03-08 16:01:28

使用jQuery时,可以使用上节的内容为元素添加事件属性。这节我们再学几个方法,也是和事件操作有关的方法。


1.png


jquery事件绑定


$().bind(事件类型,function事件处理);

$().bind(类型类型类型3,事件处理);   //给许多不同类型的事件绑定同一个处理

$().bind(json对象);  //同时绑定多个不同类型的事件

(事件类型:click  mouseover  mouseout  focus  blur 等等)

事件处理:有名函数、匿名函数


使用上节的方式可以为元素添加事件属性,为什么还要学习bind方法呢?先看几个示例:


1.png

1.png

1.png


总结:一个元素只有一个事件,使用bind没什么优势。一个元素有多个事件,使用bind更方便。


取消事件绑定


① $().unbind();      //取消全部事件

② $().unbind(事件类型);     //取消指定类型的事件

③ $().unbind(事件类型,处理);   //取消指定类型的指定处理事件

注意:第③种取消事件绑定,事件处理必须是有名函数。


事件委派


live(type, [data], fn)

这个方法是基本是的 .bind() 方法的一个变体。使用 .bind() 时,选择器匹配的元素会附加一个事件处理函数,而以后再添加的元素则不会有。为此需要再使用一次 .bind() 才行。


而live()方法给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。


不过,live方法在我们当前的版本中已失效了。在Jquery1.7版本中就不推荐使用live()方法了,在1.9版本中live()方法被移除了,用on()方法来代替。


on()方法楠神用过,感觉不好用,我不做介绍了,想了解大家自己去网上搜索相关介绍吧。


事件对象


$().bind(click,function(evt){ window.event });

$().click(function(evt){});

$().bind(mouseover,f1);

function f1(evt){}

事件对象:就使用红色的evt即可,在jquery框架内部有做浏览器兼容处理。


阻止浏览器默认动作、阻止事件冒泡


阻止浏览器默认动作、阻止事件冒泡

dom2级浏览器默认动作阻止:

事件对象.preventDefault();    主流浏览器

事件对象.returnValue = false;   IE浏览器

dom2级事件冒泡阻止:

事件对象.stopPropagation();    主流浏览器

事件对象.cancelBubule = true;   IE浏览器


在jquery里边:

$().bind(click,function(evt){

evt.preventDefault();

evt.stopPropagation();

});

preventDefault()方法是jquery的方法,名字与js底层代码的名字一致而已

             并且其有做浏览器兼容处理

stopPropagation()方法是jquery的方法,名字与js底层代码的名字一致

     其有做浏览器兼容处理


本节学习代码》》》