jquery 動態生成的元素的事件無法繫結

2021-06-28 00:14:23 字數 469 閱讀 2387

今天遇到乙個問題,由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 它可以給所有元素繫結事件,不論是已有的...