使用jQuery时,可以使用上节的内容为元素添加事件属性。这节我们再学几个方法,也是和事件操作有关的方法。
jquery事件绑定
$().bind(事件类型,function事件处理);
$().bind(类型1 类型2 类型3,事件处理); //给许多不同类型的事件绑定同一个处理
$().bind(json对象); //同时绑定多个不同类型的事件
(事件类型:click mouseover mouseout focus blur 等等)
事件处理:有名函数、匿名函数
使用上节的方式可以为元素添加事件属性,为什么还要学习bind方法呢?先看几个示例:
总结:一个元素只有一个事件,使用bind没什么优势。一个元素有多个事件,使用bind更方便。
取消事件绑定
① $().unbind(); //取消全部事件
② $().unbind(事件类型); //取消指定类型的事件
③ $().unbind(事件类型,处理); //取消指定类型的指定处理事件
注意:第③种取消事件绑定,事件处理必须是有名函数。
事件委派
这个方法是基本是的 .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底层代码的名字一致。
其有做浏览器兼容处理