2010-07-14 66 views
2

所以我有一個輸入文本,在按鍵=輸入時將LI預先設置爲UL點擊使用jQuery從UL中刪除LI

LI包含一個LINK,允許用戶從UL

HTML中刪除它(在頁面加載時)

<ul id="conditionList"></ul> 

在用戶輸入一些條件後,UL將填充LI

<li>condition<a href="#" class="clearitem">x</a></li> 

然而,在我的jQuery中

$('#conditionList a.clearitem').click(function(){ 
$(this).parent().remove(); 
}); 

將無效!

是因爲它沒有識別出新的LI?

回答

6

自1.9起不推薦使用。使用on而不是live

使用live()代替click那裏,因爲你的鏈接是動態生成的:

$('#conditionList a.clearitem').live('click', function(){ 
    $(this).parent().remove(); 
}); 

.live()

連接處理程序的事件匹配當前所有 元素 選擇器,現在或將來。

從1.9開始衰減。使用on而不是live

+0

depracate自1.9。使用'on'而不是'live' – WebQube 2014-06-06 13:27:28

2

你需要使用一個事件綁定來識別創建的元素。這應該這樣做:

$('#conditionList a.clearitem').live('click', function() { 
    $(this).parent().remove(); 
}); 
1

可能在聲明單擊事件處理程序後將LI添加到DOM?如果是這樣,你可能想用live()來代替bind():

$('#conditionList a.clearitem').live('click', function(){ 
$(this).parent().remove(); 
});