javascript
  • jquery
  • 2012-04-04 15 views 1 likes 
    1
    $("#button_title_delete").click(function(){ 
        jQuery.ajax({type:'POST', 
          url:'delete.php', 
          data: 'id='+$("bid").val(), 
          success: function(veri) { $("#delete_result").html(veri);} 
         }); 
        }); 
    

    "button_title_delete" idでボタンをクリックすると、この機能は1回だけ機能します。何が間違っているのですか?私はこの問題をどのように修正すべきですか?JQueryのクリック操作は一度しか動作しません

    +1

    新しいページ 'delete.php' は同じコード/ロジックと同じボタンが含まれていますか? – ericosg

    答えて

    5

    おそらく、AJAX関数のsuccessコールバックのボタンを置き換えるためです。クリックイベントをアタッチするには、jQueryの.on()メソッドを使用する必要があります。

    +0

    他のJQueryリクエストでボタンを置き換えていることに気付きました。それを指摘してくれてありがとう、非常に感謝します。 –

    +0

    @gcx:うれしかった! –

    +2

    注:セレクタを2番目のパラメータとして渡すことによって、 "委譲モード"で '.on'を使用する必要があります。 –

    3

    私の推測では、ボタンは$("#delete_result")の内側にあると考えられます。 $("#delete_result").html(veri)を実行すると、ボタン(およびそのイベント)が削除され、新しいボタンが作成されます。

    ボタンを「ライブ」イベントにする必要があります。

    $("#delete_result").on("click", "#button_title_delete", function(){ 
        jQuery.ajax({type:'POST', 
          url:'delete.php', 
          data: 'id='+$("bid").val(), 
          success: function(veri) { $("#delete_result").html(veri);} 
         }); 
        }); 
    

    DEMO:そう同様http://jsfiddle.net/pujr8/

    関連する問題