jquery 里bind()和live()函数的区别和用法

jquery 里bind()和live()函数的区别和用法
bind:
$("p").bind("click", function(){
  alert( $(this).text() );
});
$("form").bind("submit", function() { return false; })
$("form").bind("submit", function(event){
  event.preventDefault();
});

live:

jQuery 1.3中新增的方法。给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件)。也能绑定自定义事件。

目前支持 click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup。
还不支持 blur, focus, mouseenter, mouseleave, change, submit
与bind()不同的是,live()一次只能绑定一个事件。

这个方法跟传统的bind很像,区别在于用live来绑定事件会给所有当前以及将来在页面上的元素绑定事件(使用委派的方式)。比如说,如果你给页面上所有的li用live绑定了click事件。那么当在以后增加一个li到这个页面时,对于这个新增加的li,其click事件依然可用。而无需重新给这种新增加的元素绑定事件。

.live()与流行的liveQuery插件很像,但有以下几个主要区别:

.live 目前只支持所有事件的子集,支持列表参考上面的说明。 .live 不支持liveQuery提供的“无事件”样式的回调函数。.live只能绑定事件处理函数。 .live 没有"setup"和"cleanup"的过程。因为所有的事件是委派而不是直接绑定在元素上的。

要移除用live绑定的事件,请用die方法

live()函数给所有当前以及将来(将来:可理解为用过ajax,js等插入的元素)会匹配的元素绑定一个事件处理函数

bind()比如在做洗衣管理系统时

《script》

$(document).ready(function(){

      $(".contain a").bind("click", function(){ alert( $(this).text()); });

});

《/script》必须使用$(document).ready;否则无法绑定到事件!因为当执行 $(".contain a").bind();下面的div并没有加载,所以无法绑定!


用.selector也可以绑定事件!和用id效果一样

<script>

$('.contain a').click(function(){
 alert($(this).attr('href'));
 return false;
});

</script>
<div class='contain'>
<a href="tset.php">点击</a>
</div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值