1

リストを管理するための 2 つのスクリプトを作成しました。1 つはページにli要素を追加してデータベースに保存するためのもので、もう 1 つはそれを削除するためのものです。実際には、li要素を作成すると、2 番目のスクリプト (削除) は有効になりません (ページを更新して削除する必要があります)。どうすればそれを機能させることができますか?

両方のスクリプトを残します。

追加:

function afegir() {

    var fnom=document.getElementById('compranom').value;
    var fnum=document.getElementById('quantitat').value;
        $.ajax({
            data: {
                "nom": fnom,
                "num":fnum
            },
            url:   'afegir.php',
            type:  'post',
            beforeSend: function () {
            },
            success:  function (response) {
            if(response!="-1") {
                $('.llista').append('<li value="'+fnum+'" id="'+response+'" >'+fnom+'</li>');
            }
            else{
            alert('Error');
            }
            }
        }); 
    }

削除:

$(document).ready(function(){
$(".list li").click(function() {
var fid=$(this).attr('id');
    $.ajax({
        data: {
            "id": fid
        },
        url:   'treure.php',
        type:  'post',
        beforeSend: function () {
        },
        success:  function (response) {
        if(response=="si") {
            $("#"+fid+"").remove();
        }
        else{
        alert('Error');
        }
        }
    }); 
});

});

ご協力ありがとうございました。

4

2 に答える 2

2

このためのイベント委任で使用します..

$(document).ready(function(){
 $(".list").on('click','li',function() {
    var fid=$(this).attr('id');
    $.ajax({
      data: {
        "id": fid
      },
      url:   'treure.php',
      type:  'post',
      beforeSend: function () {
      },
      success:  function (response) {
        if(response=="si") {
          $("#"+fid+"").remove();
        }
        else{
           alert('Error');
        }
       }
   }); 

 });
});

委任されたイベントの詳細については、ここにリンクしてください

于 2013-02-20T13:45:12.550 に答える
0

新しく作成された要素にアクセスするためにlive()を使用できます:http://api.jquery.com/live/

説明:現在および将来、現在のセレクターに一致するすべての要素にイベントハンドラーをアタッチします。

于 2013-02-20T14:23:08.763 に答える