2

要素内にリンクがあり、リンクがクリックされたときに要素を削除し<li>たいと考えています。<li>これが私のコードです:

<li id='i80'>
 <div class='singleitem'>
  <img src='/css/images/image.png' width='30' height='30' />
  <div id='listtext'><h1>Title</h1></div>
  <a class='delete' id='80' href='#'></a>
  <div id='helper'></div>
 </div>
</li>

そして私のJqueryコード:

$(".delete").click(function(e){
 var del_id = $(this).attr('id');
 e.preventDefault();
 $.post("/add/delete.php", { iid: del_id } ,function(data){
  if(data.status == 'deleted');
   {
     $(this).closest("li").remove();
   }
 });
});

ajax は正常に機能しており、「削除済み」ステータスが正しく返されていますが、親の削除を含む 1 行がli機能しません。何か案は?ありがとう。

編集:

ul既存のリスト項目に動的に追加した新しいリスト項目がここでは機能しないことに気付きました。これは、ページが最初に読み込まれたときに読み込まれ、動的に更新されたコンテンツでは機能しないためですか?

4

4 に答える 4

5
$(".delete").click(function(e){
 var del_btn = $(this);              // cahed
 var del_id = del_btn.attr('id');
 e.preventDefault();
 $.post("/add/delete.php", { iid: del_id } ,function(data){
  if(data.status == 'deleted');
   {
     del_btn.closest("li").remove(); // used
   }
 });
});


OPからの追加の問題に合わせて 編集します。次のような方法
を使用します。.on()

$(".singleitem").on('click', 'a.delete', function(e){
 var del_btn = $(this);              // cahed
 var del_id = del_btn.attr('id');
 e.preventDefault();
 $.post("/add/delete.php", { iid: del_id } ,function(data){
  if(data.status == 'deleted');
   {
     del_btn.closest("li").remove(); // used
   }
 });
});
于 2012-04-29T19:06:22.840 に答える
4

ajaxブロック内の$(this)オブジェクトは$( "。delete")オブジェクトではありません。次のようなことをする必要があります。

$(".delete").click(function(e){
 var $del_button = $(this);
 var del_id = $(this).attr('id');
 e.preventDefault();
 $.post("/add/delete.php", { iid: del_id } ,function(data){
  if(data.status == 'deleted');
   {
     $del_button.closest("li").remove();
   }
 });
});
于 2012-04-29T19:05:54.233 に答える
0

$(this).parent()。remove();を試してください。

(それはあなたが座っている枝をのこぎりで切るように感じますが..)

于 2012-04-29T19:05:57.327 に答える
0

次のことを試してください。親を参照する必要があります

$(this).parent().remove()
于 2012-04-29T19:06:01.987 に答える