1. 程式人生 > >jquery中.on()方法指定子元素和不指定子元素的區別

jquery中.on()方法指定子元素和不指定子元素的區別

首先來看下這兩種情況下的輸出:

<div class="parent">
    <div class="father">
        <div class="son">測試.on()方法</div>
    </div>
</parent>

情況一:

$(".parent .father").on("click", function(){
    console.log("父元素被點選");
});
$(".parent .son").on("click", function(){
    console.log("子元素被點選"
); });

情況一:

$(".parent .father").on("click", function(){
    console.log("父元素被點選");
});
$(".parent").on("click", ".son", function(){
    console.log("子元素被點選");
});

這兩種情況的輸出分別為:
情況一:

子元素被點選
父元素被點選

情況二:

父元素被點選
子元素被點選

為什麼兩個等價的程式碼,輸出結果卻不同呢?
原因在於,.son的click事件繫結的位置不同:

$(".parent .son").on("click"
, function(){ console.log("子元素被點選"); }); 這行程式碼是將點選事件繫結在.son元素上,而.son.father的子元素

$(".parent .son").on("click", function(){
    console.log("子元素被點選");
});

這行程式碼雖然觸發的都是.son上的點選事件,但是該點選事件繫結在了.parent元素上,而.parent.father的父元素

相關推薦

jquery.on()方法定子元素定子元素區別

首先來看下這兩種情況下的輸出: <div class="parent"> <div class="father"> <div class="son">測試.on()方法</div>

Android-LayoutInflaterinflate方法兩個引數三個引數的區別

關於inflate引數問題,我想很多人多多少少都瞭解一點,網上也有很多關於這方面介紹的文章,但是枯燥的理論或者翻譯讓很多小夥伴看完之後還是一臉懵逼,so,我今天想通過三個案例來讓小夥伴徹底的搞清楚這個東東。本篇部落格我們不講原始碼,只看使用。原始碼的解讀會在下一篇博文中帶

三個案例帶你看懂LayoutInflaterinflate方法兩個引數三個引數的區別

關於inflate引數問題,我想很多人多多少少都瞭解一點,網上也有很多關於這方面介紹的文章,但是枯燥的理論或者翻譯讓很多小夥伴看完之後還是一臉懵逼,so,我今天想通過三個案例來讓小夥伴徹底的搞清楚這個東東。本篇部落格我們不講原始碼,只看使用。原始碼的解讀會在下一篇博文中帶來。

jsnew函式後帶括號帶括號的區別

用new建立建構函式的例項時,通常情況下new 的建構函式後面需要帶括號(譬如:new Parent())。 有些情況下new的建構函式後帶括號和不帶括號的情況一致,譬如: function Parent(){ this.num = 1; } co

lintcode---子集(帶重複元素帶重複元素的兩種解法)

題目描述: 給定一個含不同整數的集合,返回其所有的子集。 注意事項: 子集中的元素排列必須是非降序的,解集必須不包含重複的子集。 樣例: 如果 S = [1,2,3],有如下的解: [ [3], [1], [2], [1,2,

jqueryprop()方法attr()方法區別淺析

clas ttr over dex idt pro query selected accesskey jquery1.6中新加了一個方法prop(),一直沒用過它,官方解釋只有一句話:獲取在匹配的元素集中的第一個元素的屬性值。 大家都知道有的瀏覽器只要寫disabled,c

jqueryprop()方法attr()方法區別

nbsp editable isa dex rop 效應 元素 body att jquery1.6中新加了一個方法prop(),一直沒用過它,官方解釋只有一句話:獲取在匹配的元素集中的第一個元素的屬性值。 大家都知道有的瀏覽器只要寫disabled,checked就可以了

Javascriptonload方法Jqueryready方法區別

1.執行時間 window.onload必須等到頁面內包括圖片的所有元素載入完畢後才能執行。 $(document).ready()是DOM機構繪製完畢後就執行,不必等到載入完畢。 2.編寫個數不同 window.onload不能同時編寫多個,且多個只能執行一個。 $(document).r

jQuery trigger()方法使用 -- 複製元素點選事件

1. 常用事件 在頁面載入完成時  自動觸發input的點選事件,在移動端可以實現自動彈出輸入法,獲得焦點 $("input").trigger("click").focus(); 簡寫為以下: $("input").click(); 2. 自定義事件

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

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

jqueryfind方法children方法區別

find方法能找子孫 children方法只能找兒子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tran

jQueryon()click()區別

前言    click()屬於靜態載入,當頁面載入完,就不在為新增加的元素新增點選事件。     on()屬於動態載入,當頁面載入完,可以為新增加的元素新增事件。但是必須選定負級元素。運用     如果想使用on()動態載入事件,記得一定要選擇父級元素,否則沒有效果,只會作用

jQueryon()方法的兩種用法(委託給父元素進行事件監聽代理)

/* 6. 增加刪除元素*jQuery: * */     var li=$('<li class="item">content</li>');//建立子節點     $('ul').append(li);//在父節點後面新增子節點     $(li

Jquerynext()方法與prev()方法的使有詳解

在jQuery中,我們可以選擇某個DOM元素進行獲取和操作,但是有時候我們在操作某個元素的時候,也要對它相鄰的的元素進行獲取或是操作,那我們該如何去做呢,今天記錄一個獲取某個元素的相鄰的上一個元素或相鄰的下一個元素。 jQuery中的next()方法 nex

jQuery給文字框獲得焦點失去焦點的方法

<input name="pwuser" type="text" id="pwuser" class="input" value="樓盤賬號" onBlur="if(this.value=='') this.value='樓盤賬號';" onFocus="if(this.value=='樓盤賬號')

jQueryfind()方法filter()方法區別

jQuery官方的API這樣說明filter和find函式: filter(selector): Description: Reduce the set of matched elements to those that match the selecto

JQuery$.ajax()方法參數詳解(轉載)

瀏覽器 object 服務器 字符串 false type: 要求為String類型的參數,請求方式(post或get)默認為get。註意其他http請求方法,例如put和 delete也可以使用,但僅部分瀏覽器支持。timeout: 要求為Number類型的參數,設置請求超時時

jQuery的.on方法

tro 定義 paragraph cli one event tip put ont jQuery on()方法是官方推薦的綁定事件的一個方法。 $(selector).on(event,childSelector,data,function,map)由此擴展開來的幾個以

jQueryanimate()方法以及$('body').animate({"scrollTop":top})被Firefox支持問題的解決

query scroll ani 應該 以及 jquery 方法 jquer ref $("body").animate({"scrollTop":top}): 只被chrome支持,而不被Firefox支持 $("html").animate({"scrollTop":t

JQuery$.ajax()方法參數詳解

返回 自動轉換 time err last 需要 可選 修改 方式 url: 要求為String類型的參數,(默認為當前頁地址)發送請求的地址。 type: 要求為String類型的參數,請求方式(post或get)默認為get。註意其他http請求方法,例如put和