欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jQuery中bind与live的用法及区别小结

程序员文章站 2022-12-01 11:11:07
首先介绍这两个方法之前,我们常用的是click()方法 。 代码如下: $("a").click(function() {   &...

首先介绍这两个方法之前,我们常用的是click()方法

代码如下:


$("a").click(function() {
     alert("hello");
});


click()方法是bind()方法的一种简单方法。在bind()中,
jquery所有javascript事件对象,比如focus, mouver,和resize,
都是可以作为type参数传递进来的。

 

参数:type,[data],function(eventobject)
例如:

代码如下:


$("p").bind("click",function(){
     alert("hello");
})


也可以传参

代码如下:


var message = "how are you!";
$("p").bind("click",{msg:message},function(e){
     alert(e.data.msg);
})


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

代码如下:


<tr class="mytr">
     <td class="mytd">click me</td>
</tr>

 

$(".mytd").bind("click",function(){
      alert("hello");
})


点击clike me 会弹出hello

 

此时添加一个新的元素进来

代码如下:


$(".mytr").after("<tr><td class='mytd'>后加的</td></tr>");


这时 再使用bind点击"后加的"不会执行
改为使用live()方法

代码如下:


$(".mytd").live("click",function(){
 alert("hello");
})


.live()方法能对一个还没有添加进dom的元素有效,是由于使用了事件委托:
绑定在祖先元素上的事件处理函数可以对在后代上触发的事件作出回应。
传递给 .live() 的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 dom 树的根节点上。