绑定事件(绑定和Live之间的区别)
在jQuery中有三种绑定事件的方法:以单击事件为例(1)target.click(function(){ });
(2)target.bind(点击),功能({ });
(3)target.live(点击),功能({ });
第一种方法很好理解。事实上,它和普通JS差不多,但只有一个是缺的。
第二种,第三种方式是绑定事件,但两种方式完全不同。接下来,我想解释一下。因为如果我们使用jQuery的框架,我们需要非常注意两者之间的区别。
{绑定和生存}之间的区别
活的方法结合的变体,与绑定方法的功能,其基本功能是相同的,是一个结合事件的一个元素,但绑定方法只能给当前元素绑定事件,对js的新一代后无效的元素,而生活方式是由绑定的方法缺陷,它可以产生元素也可以结合相应的事件,那么这一特点的生活方法并实施接下来讨论其实现的原则。
活方法可以将事件绑定到后续生成元素的原因归因于事件委托。所谓的事件委托意味着绑定到祖先元素的事件可以在它们的后代上使用。活方法的处理机制是将事件绑定到DOM树的根节点,而不是直接绑定到一个元素:
复制代码代码如下所示:
$(。clickme)。活(单击
$()。追加(测试活方法);
当我们点击这个新元素时,以下步骤依次发生:
(1)生成一个单击事件,该事件被传递到div进行处理。
(2)事件直接绑定到div因为没有事件,那么事件直接冒泡到DOM树
(3)事件向DOM树的根节点冒泡,默认情况下单击事件绑定到根节点。
(4)执行按需绑定的单击事件
(5)检查绑定事件的对象是否存在,以确定是否需要继续绑定事件。
无论是$(事件。目标)。最近('。clickme)可以找到匹配的元素。
(6)通过(5)测试,如果绑定事件的对象存在,则执行绑定事件。
因为只有当事件发生时,现场的方法将检测是否结合事件的对象存在,所以活的方法可以实现后续元素实现事件绑定。相反,绑定将决定是否在事件的结合相结合的事件存在的元素,而只有结合,而结合父节点的当前元素。
根据上面的分析,生活的好处是非常大的,那么为什么要使用绑定方法呢jQuery之所以保留绑定方法,而不是使用Live方法来替换绑定,也是因为在某些情况下Live不能完全替换绑定:
(1)绑定方法可以绑定任何Javascript事件,而生活方式只支持单击、双击、KeyDown,按键、Keyup、MouseDown、MouseMove、Keyup、MouseDown和MouseMove在jquery1.3在jquery1.3。
事件(映射到更合适,可以泡聚集和focusout)。此外,在jQuery 1.4.1,它还可以支持悬停(映射到MouseEnter MouseLeave )。
(2)Live()不能完全支持通过DOM遍历方法发现的元素,而应该直接在选择器后面使用Live()方法。
(3)当元素使用Live绑定事件时,如果要防止事件通过或冒泡,则需要在函数中调用返回false。里面是不是能够防止事件传递或冒泡。