1. 程式人生 > >jQuery中bind、live和delegate的區別

jQuery中bind、live和delegate的區別

DOM樹

首先,視覺化一個HMTL文件的DOM樹是很有幫助的。一個簡單的HTML頁面看起來就像是這個樣子:


事件冒泡(又稱事件傳播)

當我們點選一個連結時,其觸發了連結元素的單擊事件,該事件則引發任何我們已繫結到該元素的單擊事件上的函式的執行。

1 $('a').bind('click', function() { alert("That tickles!") });
因此一個單擊操作會觸發alert函式的執行。


click事件接著會向樹的根方向傳播,廣播到父元素,然後接著是每個祖先元素,只要是它的某個後代元素上的單擊事件被觸發,事件就會傳給它。


在操縱DOM的語境中,document是根節點。

現在我們可以較容易地說明.bind()、.live()和.delegate()的不同之處了。

.bind()

1 $('a').bind('click', function() { alert("That tickles!") });
這是最簡單的繫結方法了。JQuery掃描文件找出所有的$(‘a’)元素,並把alert函式繫結到每個元素的click事件上。

.live()

1 $('a').live('click', function() { alert("That tickles!") });
JQuery把alert函式繫結到$(document)元素上,並使用’click’和’a’作為引數。任何時候只要有事件冒泡到 document節點上,它就檢視該事件是否是一個click事件,以及該事件的目標元素與’a’這一CSS選擇器是否匹配,如果都是的話,則執行函式。

live方法還可以被繫結到具體的元素(或context)而不是document上,像這樣:

相關推薦

jQuerybindlivedelegate區別

DOM樹 首先,視覺化一個HMTL文件的DOM樹是很有幫助的。一個簡單的HTML頁面看起來就像是這個樣子: 事件冒泡(又稱事件傳播) 當我們點選一個連結時,其觸發了連結元素的單擊事件,該事件則引發任何我們已繫結到該元素的單擊事件上的函

Jquery.bind().live().delegate().on()之間的區別詳解

簡介 最近了解到很多網頁開發者對jquery中的 .bind() .live() .delegate() 和 .on() 方法存在很多的疑惑。這些疑惑通常是關於它們之間真正的區別是什麼啊,什麼時候該使用它們啊。下面本文將給大家詳細介紹這四個方法之間的區別,分別對每個方法都進

jQuery的.bind().live().delegate()之間區別分析

現在我們可以較容易地說明.bind()、.live()和.delegate()的不同之處了。 .bind() 程式碼如下: $('a').bind('click',function(){alert('That tickles!');}) 這是最簡單的繫結方法了。JQuery掃描文件找出所有的$(‘a')元素

jQuerybindlivedelegate,on繫結事件的方式與區別

jQuery中提供了四種事件監聽方式,分別是bind、live、delegate、on,對應的解除監聽的函式分別是unbind、die、undelegate、off。 已知有4個列表元素:   列表元素1   列表元素2   列表元素3   列表元素4

jQuerywrapwrapAllwrapInner用法以及區別

wrap、wrapAll和wrapInner都是包裹節點,但是在使用的時候總是容易混淆,不太明白具體的區別。簡單的來說;wrap(): 將所有匹配元素單獨包裹起來wrapAll(): 將所有匹配元素一

內容包裝:jQuerywrapwrapAllwrapInner用法以及區別

wrap,   使用函式來規定在每個被選元素周圍包裹的內容。 <ul>   <li title='蘋果'>蘋果</li>   <li title='橘子'>橘子</li>   <li title='菠

JSconstvarlet區別

方法 pre 命令 con 使用 它的 comm 作用 影響 在JavaScript中有三種聲明變量的方式:var、let、const。 1.const 聲明創建一個只讀的常量。這不意味著常量指向的值不可變,而是變量標識符的值只能賦值一次,必須初始化。 const b

jQuery$.get()$.post()$.ajax()

nag post 這就是 也有 定義 消息 ram 結果 通用 jQuery.get()方法: $.get(url,data,success(response,status,xhr),dataType) 該函數是簡寫的 Ajax 函數,等價於: [javasc

JQuery的text(),html()val()區別

定義和用法 text() 方法方法設定或返回被選元素的文字內容 text()只輸出標籤內的文字內容,和js的innerText方法一樣 定義和用法 html() 方法返回或設定被選元素的內容 (inner HTML),包括標籤。 如果該方法未設定引數,則返回

JavaScriptbreakcontinuereturn區別例項

在 JavaScript中break,continue和return 這三個關鍵字, 都有停止迴圈的功能,return 還有另外一個功能,就是函式返回語句,但是返回的同時也將函式停止。 下面介紹3個關鍵字在停止for迴圈中的區別: 1、break的用法 得到的結果是: 2、continue的用法

jscontinuebreakreturn區別

很多人將continue、break和return混淆,不知道該怎麼用才對,下面我簡單講述一下這三個語句的作用; return:它是用在一個函式中的,他可以跳出這個迴圈(return後面的語句將不再執行),然後返回一個值(僅一個),如果你想返回多個值,那麼就要將多個值寫到一個物件中,

JavaScriptconstvarlet區別淺析

在JavaScript中有三種宣告變數的方式:var、let、const。下文給大家介紹js中三種定義變數的方式const, var, let的區別。 1.const定義的變數不可以修改,而且必須初始化。 ? 1 2 3 4 5 const

JQueryserialize()serializeArray()param()方法

下面是伺服器端的jsp程式碼: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8");

面試官:能解釋一下javascriptbindapplycall這三個函式的用法嗎

一.前言     不知道大家還記不記得前一篇文章:《面試官:能解釋一下javascript中的this嗎》   那今天這篇文章雖然是介紹javascript中bind、apply和call函式,但是多少也和this有點關聯。   假如在前面那場面試末尾,面試官不依不饒繼續問你javascr

jquerybind()live()的區別與使用(事件處理)

綁定 HA 我們 doc dso 目標 code span ive 原文:jquery中的bind()、live()的區別與使用(事件處理)使用jquery有一段時間了,剛開始看別人的源代碼的時候對事件的綁定方法有疑惑。比如: var btn=$("#button")

jQuery的事件委託方法bind livedelegateon之間有什麼區別

(1)、bind 【jQuery 1.3之前】 定義和用法:主要用於給選擇到的元素上繫結特定事件型別的監聽函式; 語法:bind(type,[data],function(eventObject)); 特點:   (1)、適用於頁面元素靜態繫結。只能給呼叫它的時候已經

jQuerybindlive區別

原文地址:http://blog.sina.com.cn/s/blog_4a60ba9c01013rgu.html Jquery中繫結事件有三種方法:以click事件為例    (1)target.click(function(){});    (2)target.

JQuerybind事件live事件的區別

       今天在和同事聊天的時候聊到了關於JQuery中bind事件和live事件的使用,感覺在日常程式碼中大多使用的都是bind很少接觸live,一直以來對於bind的事件繫結都挺順手的就沒想著去調整使用live,今天因為這個討論重新瞭解JQuery的事件繫結機制,發

jqueryappendprepend, beforeafter方法的區別(一)

mod serve com oos 兄弟節點 sha pos 插入 5% 原文:http://blog.csdn.net/woosido123/article/details/64439490 在 jquery中append() 與 prepend()是在元素內插

Jqueryhtml()text()val()的使用區別

center () .text div 使用 avi innerhtml mar font jquery中獲取對象內容的方法主要有3種,分別是html()、text()、val()。 obj.html():獲取對象包裹的所有html內容,相當於innerHTML。