今天遇到乙個問題,由jquery動態去生成一段html元素後,這些新生成的元素繫結的事件不起作用.
問題分析:
1. click或者是...bind('click',function());,click是bind('click',...)的簡化形式,是jquery掃瞄文件找出所有的$(『input[name=a]』)元素,並把函式繫結到每個元素的click事件上,表明是現有頁面上存在的元素,動態生成的元素不包括在內。
2.delegate方法,事件**或者說是事件委託,實現原理是事件的冒泡,在指定的祖先元素中註冊事件(delegate在特定元素上),元素事件觸發,傳播到這個元素然後進行篩選。可以在祖先元素中繫結事件,比如上面的div是祖先元素,而新生成的元素都是div的子元素,所以動態生成的元素的事件就可以繫結了。
解決方法:
用delegate()或live()來代替on()或click()或bind();
jQuery獲取動態生成的元素
需求描述 頁面上可以動態新增資料,比如table,點選按鈕可以動態新增行。又或頁面 載入時table資料是通過ajax從後台獲取的。而這時我們想要獲取其中的某個值,又該如何獲取呢?如果是要通過某個事件來獲取的比如click,mouseover等等,則可以使用live 方法?1 23 button l...
jQuery 如何給動態生成的元素繫結事件?
jquery的html 可以給現在元素附加新的元素,innerhtml也可以,那麼,如何給這些新生成的元素繫結事件呢?直接在元素還未生成前就繫結肯定是無效的,因為所繫結的元素目前根本不存在。然而,jquery為我們提供了乙個函式來解決這個問題,它就是.live 備註 jquery的後期版本變為.on...
jQuery 如何給動態生成的元素繫結事件?
jquery的html 可以給現在元素附加新的元素,innerhtml也可以,那麼,如何給這些新生成的元素繫結事件呢?直接在元素還未生成前就繫結肯定是無效的,因為所繫結的元素目前根本不存在。然而,jquery為我們提供了乙個函式來解決這個問題,它就是.live 它可以給所有元素繫結事件,不論是已有的...