2011-01-22 102 views
0

好的人可以通過按下ADD按鈕在我的網站上創建一個列表。代碼來做到這一點是如下(使用jquery):獲取對象用戶點擊的DOM

<script type="text/javascript"> 
function voegToe(){ 
$('#sortable1').append("<li class='ui-state-default'>" + $('#product').html() + $('#eiwit').html() + " <button id='voegtoe' class='zoek' type='button' onClick='deleteObject();'>del</button></li>"); 
} 
</script> 

所以按下按鈕在UL#sortable1其還具有在它刪除按鈕增加了一個LI元件。現在我想創建一個事件,當用戶單擊某個列表項的刪除按鈕時,該列表項將從列表中刪除。

我該怎麼做?因爲現在在創建列表時,所有的li id或類都是相同的,所以我不能用它來指定哪個元素應該被刪除。那麼我怎麼說:刪除只有刪除按鈕被按下的LI?

<script type="text/javascript"> 
    function voegToe(){ 
     $('??????').remove(); 
    } 
    </script> 

回答

2
$('.zoek').live('click', function() { 
    $(this).parent().remove(); 
}); 
+0

謝謝!那完美的工作!額外的問題:通過「偵聽」點擊事件或通過在按鈕標記本身中創建onClick代碼來使按鈕以這種方式工作會更好嗎? – Javaaaa 2011-01-22 23:53:03

+0

@Javaaaa:我認爲附加事件監聽器通常會更好。然後你不要混淆內容和行爲。 – icktoofay 2011-01-22 23:54:49

2

使用jQuery 1.4.2+:

$('#sortable1').delegate('button', 'click', function() { 
    $(this).parent().remove(); 
}); 

順便說一句,你不應該有重複的ID,而是你應該使用另一個類來代替。元素可以是是多個類的一部分; HTML屬性是空格分隔的列表。