1、問題描述html
用jQuery的append()方法動態添加了一段html代碼以後,發如今爲新添加的元素綁定click事件時沒法獲取該新元素。app
2、解決方法函數
度娘推薦的方法基本是用live()方法測試
live()的官方定義和用法:.net
live() 方法爲被選元素附加一個或多個事件處理程序,並規定當這些事件發生時運行的函數。經過 live() 方法附加的事件處理程序適用於匹配選擇器的當前及將來的元素(好比由腳本建立的新元素)。htm
live()的詳細使用方法能夠查看jQuery live()事件
live()和bind()的區別就是live不只能夠給頁面中現有的元素綁定事件,還能夠給未來動態添加進來的元素綁定時間。get
因而我用live()替換了bind(),但報出了新錯誤:TypeError: $(...).live is not a functionio
通過查詢之後發現,原來是jQuery 1.9及其以上已經沒法使用live(),能夠用on()方法代替live().function
on()的官方定義和用法:
on() 方法在被選元素及子元素上添加一個或多個事件處理程序。自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。
注意:使用 on() 方法添加的事件處理程序適用於當前及將來的元素(好比由腳本建立的新元素)。
on()的詳細使用方法能夠查看jQuery on();
總之,記住若是你要綁定動態生成的元素事件,必定要先找到他的父元素(父元素不能是動態生成的,不然繼續往上找),在父元素中綁定,而後再進行過濾就ok了,對了,我測試了hover事件發現不行,沒去深究緣由。