亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery.live()vs.on.on()方法,用于在加載動態html之后添加單擊事件。

jQuery.live()vs.on.on()方法,用于在加載動態html之后添加單擊事件。

翻閱古今 2019-06-05 15:48:15
jQuery.live()vs.on.on()方法,用于在加載動態html之后添加單擊事件。我使用jQueryv.1.7.1,其中顯然不推薦.live()方法。我遇到的問題是,當使用以下方法將html動態加載到元素中時:$('#parent').load("http://...");如果我嘗試在之后添加一個Click事件,它不會使用以下任何一種方法來注冊該事件:$('#parent').click(function() ...);或// according to documentation this should be used instead of .live()$('#child').on('click', function() ...);實現此功能的正確方法是什么?它似乎只適用于.live(),但我不應該使用這種方法。注意,#子元素是一個動態加載的元素。謝謝。
查看完整描述

3 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

試試這個:

$('#parent').on('click', '#child', function() {
    // Code});

$.on()文件:

事件處理程序僅綁定到當前選定的元素;它們必須在代碼調用時存在于頁上。.on().

你的#child元素在調用$.on()在上面,所以事件不受約束(不像$.live()). #parent然而,是嗎?存在,因此將事件綁定到該事件是很好的。

以上代碼中的第二個參數充當一個“篩選器”,僅在事件冒泡到#parent從…#child.


查看完整回答
反對 回復 2019-06-05
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

$(document).on('click', '#selector', function() { /* do stuff */ });

編輯:我提供了更多關于這是如何工作的信息,因為.言語。使用此示例,您將在整個文檔上放置一個偵聽器。

當你click關于任何元素匹配#selector,事件一直到主文檔-只要沒有其他偵聽器調用event.stopPropagation()方法-它將使事件冒泡為父元素。

不是綁定到特定的元素或元素集,而是偵聽來自與指定選擇器匹配的元素的任何事件。這意味著您可以創建一個偵聽器,一次,它將自動匹配當前存在的元素以及任何動態添加的元素。

這是明智的,原因有幾個,包括性能和內存利用率(在大規模應用程序中)。


查看完整回答
反對 回復 2019-06-05
  • 3 回答
  • 0 關注
  • 934 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號