2012-04-29 14 views
2

<li>要素内にリンクがあり、リンクをクリックしたときに<li>要素を削除します。ここに私のコードは次のとおりです。Jquery - リンクを含む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は正常に動作していると「削除」ステータスが戻って正しく送信されています親liは機能しません。何か案は?ありがとう。

EDIT:

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

答えて

4

$(this)ajaxブロック内のオブジェクトは$( "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(); 
    } 
}); 
}); 
+0


のような.on()メソッドを使用してください!迅速な返信をありがとう、それは今完全に動作します。私は期限が過ぎるとすぐにこれを答えるとマークします。再度、感謝します! – nbu

+0

大歓迎です! – mask8

0

try $(this).parent()。remove();

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

+0

これで何が解決するのか説明しなければなりません。 – gdoron

+0

あなたはそれを試してみましたか?あなたのコードはうまくいくはずですが、私の場合はそうしているように見えますか? – Andiih

+0

私は問題は何か、何が「最も近い」と「親」なのかを知る必要はありません... – gdoron

0

次を試してみてください、あなたは親

$(this).parent().remove() 
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 
    } 
}); 
}); 


EDIT を参照する必要がOPによって尋ねられた追加の問題に合うように。あなたはそれをやった

$(".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 
    } 
}); 
}); 
+0

それです!迅速な回答をいただきありがとうございます! – nbu

+0

@nbu - うん:)私は* mask8 *と同じ答えを共有することがわかります。おかげさまで。ハッピーコーディング! –

+0

もう1つ質問:既存のulに動的に追加した新しいリスト項目がここでは機能しないことに気付きました。これは、ページが最初に読み込まれたときにロードされ、動的に更新されたコンテンツでは機能しないためです。 – nbu

関連する問題