jquery中的bind()、live()的区别与使用(事件处理)

使用jquery有一段时间了,刚开始看别人的源代码的时候对事件的绑定方法有疑惑。比如:

var btn=$("#button");
 btn.click(function(){
 alert("I have been clicked!");
 }); 

这就绑定了一个click事件。

1.bind()方法解析

但后来发现jqueryAPI里面还有bind方法,一直没有使用过,查看API的使用方法:

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

同时绑定多个事件类型

$(‘#foo‘).bind(‘mouseenter mouseleave‘, function() {
  $(this).toggleClass(‘entered‘);
});

注意:事件类型名称用空格隔开,使用场景:多个事件类型做同一个动作时使用。

相对于直接注册事件,bind()方法可以绑定多个事件,相同之处是都是绑定在目标对象上面,这个方法是存在最久的,而且也很好的解决了浏览器在事件处理中的兼容问题

注意如果父层有绑定事件的情况下,需要阻止一下冒泡,e.stopPropagation()和e.cancellBubble().

2.live()方法解析

使用情况如下:

$(‘#foo‘).live(‘click‘, function() {
  $(this).toggleClass(‘entered‘);
});//.live()方法用到了事件委托的概念来处理事件的绑定。

live()方法用到了事件委托的概念来处理事件的绑定。它和用.bind()来绑定事件是一样的。区别之处在于:

live()总是找到事件对象(event.target)的顶级元素(document),并在document节点上进行事件绑定,通过事件冒泡的机制进行事件委派,使用时只需要定义一次,可以满足所有符合要求的事件对象,使用环境是多个对象做同一个类型的事情的时候,比如要让所有的元素弹出自己的ID 代码如下:

<div id="parent">
            <div id="son">
                <div id="grandson">
                    fffffffff
                </div>
            </div>
 </div>

我们现在要让三个div都要弹出自己的ID

JS代码如下:

$("#parent").live("click",function(){
     alert($(this).id);
})        
时间: 2024-10-11 04:30:24

jquery中的bind()、live()的区别与使用(事件处理)的相关文章

jQuery中的bind() live() delegate()之间区别分析

jQuery中的bind() live() delegate()之间区别分析 首先,你得要了解我们的事件冒泡(事件传播)的概念,我先看一张图 1.bind方式 $('a').bind('click',function (){ alert('click'); }) 解析:这种方式最简单,jq扫描文档找出所有的a,让将函数绑定到每个元素的click事件上 2.live方式 $('a').live('click',function (){ alert('click'); }) 解析:jq将函数绑定到$

jquery中attr和prop的区别分析

这篇文章主要介绍了jquery中attr和prop的区别分析的相关资料,需要的朋友可以参考下 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: • 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. • 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. 上面的描述也许有点模糊,举几个例子就知道了. 复制代码代

jQuery中this与$(this)的区别

jQuery中this与$(this)的区别 起初以为this和$(this)就是一模子刻出来.但是我在阅读时,和coding时发现,总不是一回事,这里就谈谈this与$(this)的区别. AD: jQuery中this与$(this)的区别 $("#textbox").hover( function() { this.title = "Test"; }, fucntion() { this.title = "OK”; } ); 这里的this其实是一个

jquery中this与$this的区别

来源:http://www.jb51.net/article/19738.htm jQuery中this与$(this)的区别 $("#textbox").hover( function() { this.title = "Test"; }, fucntion() { this.title = "OK”; } ); 这里的this其实是一个Html 元素(textbox),textbox有text属性,所以这样写是完全没有什么问题的.但是如果将this换成

基于jquery中children()与find()的区别介绍

本篇文章介绍了,基于jquery中children()与find()的区别,需要的朋友参考下 .children(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈).参数可选,添加参数表示通过选择器进行过滤,对元素进行筛选. .find(selector)方法是返回匹配元素集合中每个元素的后代.参数是必选的,可以为选择器.jquery对象可元素来对元素进行筛选. .find() 与 .children() 方法类似,不同的是后者仅沿着 DOM 树向下遍历单一层级.这里的

JQuery中after() append() appendTo()的区别

首先 after() 是追加在元素外边而append() appendTo()是追加在元素里面. $(selector).after(content) $("span").after("<a>aa</a>") 结果是<span></span><a>aa</a> 不是 <span><a>aa</a></span> 而如果用 append() $(&q

Jquery学习笔记(6)--jquery中attr和prop的区别【精辟】

jquery中attr和prop的区别 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. 上面的描述也许有点模糊,举几个例子就知道了. <a href="http://www.baidu.com&quo

jQuery中first-child与first选择器区别

1.first-child first-child为每个父级元素匹配第一个子元素,可以匹配出多个元素: 示例代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <title>jQuery中first-child与first选择器区别</title> </head> <body> <

jquery中attr和prop的区别(转)

在网络上看到这样一篇关于jquery中attr和prop的区别文章,觉得不错,所以转载了,一下为原文引用: 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. 上面的描述也许有点模糊,举几个例子就知道了. <a

Jquery中的 height(), innerHeight() outerHeight()区别

jQuery中的 height innerHeight outerHeight区别 标准浏览器下: height:高度 innerHeight:高度+补白 outerHeight:高度+补白+边框,参数为true时:高度+补白+边框+边距 html代码: <div class="width: 150px;height:20px;float: left;border: 2px solid red;margin: 10px;margin: 10px;padding: 10px;" i