成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? jQuery如何獲取動態添加的元素
全站頭部文字 我要出現在這里
jQuery如何獲取動態添加的元素 664 2024-02-26   

一、問題描述

  用jQuery的append()方法動態添加了一段html代碼之后,發現在為新添加的元素綁定click事件時無法獲取該新元素。

二、解決方法

  度娘推薦的方法基本是用live()方法

  live()的官方定義和用法:

  live() 方法為被選元素附加一個或多個事件處理程序,并規定當這些事件發生時運行的函數。通過 live() 方法附加的事件處理程序適用于匹配選擇器的當前及未來的元素(比如由腳本創建的新元素)。

查看圖片

  live()的詳細使用方法可以查看jQuery live()

 live()和bind()的區別就是live不僅可以給頁面中現有的元素綁定事件,還可以給將來動態添加進來的元素綁定時間。

  于是我用live()替換了bind(),但報出了新錯誤:TypeError: $(...).live is not a function

  經過查詢以后發現,原來是jQuery 1.9及其以上已經無法使用live(),可以用on()方法代替live().

  on()的官方定義和用法:

  on() 方法在被選元素及子元素上添加一個或多個事件處理程序。自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。

  注意:使用 on() 方法添加的事件處理程序適用于當前及未來的元素(比如由腳本創建的新元素)。

查看圖片

  on()的詳細使用方法可以查看jQuery on()

三、代碼演示

html頁面:

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>jQuery on()方法測試</title>
</head>
<body>
<button id="click1">Click me!</button>
<p>Hello,</p>
<script src="http://www.gimoo.net/t/1902/js/jquery.min.js"></script>
<script src="http://www.gimoo.net/t/1902/js/test.js"></script>
</body>
</html> 

test.js:

$().ready(function(){
  $("#click1").bind("click",function(){
    $("p").append("<div class='new'><b>I'm clicked!</b></div>");
  });
  //on方法要先找到原選擇器(p),再找到動態添加的選擇器(.new)
  $("p").on("click",".new",function(){
    $(this).remove();
  });
});

  test.js中第6行實現了為動態添加的.new元素綁定click事件。應注意的是,雖然是為.new綁定事件,但on()方法卻是綁定在原選擇器<p>上的,然后將.new放在了參數列表中,原理參照上文on()的官方定義和用法。

  以上便是所有內容,如有需要修改或補充的地方,歡迎交流。



主站蜘蛛池模板: 哥谭骑士| 那些年,那些事 电视剧| 正在行动| 慈禧向十一国宣战台词| 超越天堂菲律宾| 木偶人| 121团炮台镇天气预报| 白幽灵传奇| 凤凰资讯台| 新贵妃醉酒简谱| 汤唯和梁朝伟拍戏原版视频| 博朗耳温枪| 张子恩| 保镖1993在线观看| 我的野蛮女老师2| 关于想象的作文| 最后的朋友| 谍变1939全部演员表| 黄网站在线观看视频| 日记的格式四年级| charlie sheen| 捉泥鳅的歌词| 爱欲1990未删减版播放| 小妹电影| 电视剧《浮沉》免费完整版| 电影《19号海滩》在线播放国语版| 拔萝卜电影版| 恐怖地带| 加入社团的个人简历怎么写| 女生被艹在线观看| 赫伯曼电影免费观看| 大秦帝国第一部免费看| 红龙 电影| 创新点| 宁静是什么民族| 杀破狼·贪狼 2017 古天乐| 高奇| fate动漫免费观看| 在线观看www视频| kaylani lei| 北京 北京 汪峰歌曲|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103