我正在玩幾個示例來學習jQuery。我做了一個例子項目時,用戶點擊一個add
按鈕和顯示的項目列表,當它們在列表中的任何項目單擊添加到列表:使用DOM動態更新的點擊事件
代碼:
HTML
<div id="sample"></div>
<a id="add" href="#">Add</a>
<ul id="list">
<li>old item</li>
<li>old item</li>
<li>old item</li>
</ul>
</div>
的jQuery
var $itemsList = jQuery('#list li');
jQuery('#add').click(function(e){
e.preventDefault();
jQuery('#list').append('<li>new item</li>');
$itemsList = jQuery('#list li');
});
$itemsList.click(function(e){
e.preventDefault();
console.log('there are ' + $itemsList.length + ' items');
$itemsList.each(function(){
console.log(jQuery(this).text());
});
});
問題:
如果使用r單擊舊項目時,控制檯顯示所有項目(新舊),但如果用戶點擊新項目(通過單擊add
按鈕創建),則不會顯示它們。我假定事件點擊符合$itemsList
,並且此對象僅引用腳本加載時創建的項目,但不包含連續創建的項目。
任何建議,sugestions?
點擊線只執行一次,並將處理程序應用於$ itemsList指向的元素 – Viruzzo