2013-05-09 3 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

Что такое "это"? –

+0

Итак, не работает ли это? –

+0

@ Karl-AndréGagnon, потому что упомянутый код находится в 'click' обработчике' delete'. – SachinGutte

ответ

2

Закрыть входные теги и вызовите preventDefault и он будет работать.

http://jsfiddle.net/P3tEw/

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

Две строки кода делают то же самое, чтобы вы могли также удалите версию parent(). parent() ', поскольку она медленнее. –

+0

Согласовано и исправлено. просто хотел показать только вопрос :) –

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

Смежные вопросы