2013-05-09 41 views
0

我的結構是:廣東話刪除元素的父元素

<p> 
     <span> 
      <input type="text" class="key" value="21"> 
     </span> 
     <span> 
      <input type="text" class="value" value="55"> 

     </span> 
     <span>  
      <a href="#" class="updateAction" data-setting-id="1">update</a> 
      <a href="#" class="deleteAction" data-setting-id="1">delete</a> 
     </span> 
    </p> 

我嘗試刪除父元素這樣只要單擊刪除鏈接:

$(this).parent().parent().hide(); 
$(this).closest('p').hide(); 
+1

什麼是 「本」? – 2013-05-09 15:59:10

+0

那麼,這是行不通的嗎? – 2013-05-09 15:59:38

+0

@ Karl-AndréGagnon,因爲提到的代碼在'delete'的'click'處理程序中。 – SachinGutte 2013-05-09 15:59:47

回答

2

關閉輸入標籤,並呼籲preventDefault它會工作。

http://jsfiddle.net/P3tEw/

$(document).on("click", ".deleteAction", function (e) { 
    e.preventDefault(); 
    $(this).closest('p').hide(); 
}); 
+0

這兩行代碼做同樣的事情,所以你也可以刪除'parent()。parent()'版本,因爲它更慢。 – 2013-05-09 16:06:56

+0

同意並更正。只想顯示問題:) – 2013-05-09 16:13:14

1

嘗試

$(".deleteAction").click(function(e){ 

    e.preventDefault(); 

    var $this = $(this); 

    $this.closest('p').fadeOut('slow',function(){ 
     $(this).remove(); 
    }); // with a fadeOut effect 

}); 

Check the jsFiddle