0

jQueryポスト機能があるボタンをクリックするたびに2倍のポストが送信され、次にボタンを押すと前回の2倍が送信される理由を教えてもらえますか? Googleで検索して見つけましunbind()たが、うまく機能していません。この問題を解決するためにGoogleで何を検索すればよいかわかりません。

$(document).ready(function(){
  $("#button").click(function(){
    $.post("includes/document.php",
    function(data) {
      $("#body").html(data);
    });
  });
});

html:

<div id="body">
    <div id="name">
        <p>Username </p>
        <input id="nameInput" type="text">
    </div>
    <div id="button">Press Me</div>
</div>
4

5 に答える 5

1

Why not use live.

$(function(){
  $("#button").live("click",function(){
    $.post("includes/document.php",
    function(data) {
      $("#body").html(data);
    });
  });
});

Jquery.live handles event delegation and removes any ghost event listeners attached to previously rendered elements.

于 2012-12-09T14:18:30.400 に答える
0

に複数のclickイベントをバインドdiv#buttonしていない場合は、jQueryがページに複数回含まれていないことを再確認してください。

于 2012-12-08T09:07:49.247 に答える
0

さて、私も何度も同じ要求に直面しました。

最初にイベントのバインドを解除してから、再度バインドします。

次のコードを実行できます

$(document).ready(function(){

  $("#button").unbind("click").bind("click",function(){

    $.post("includes/document.php",
            function(data) {
              $("#body").html(data);
            });

    });

});​
于 2012-12-08T10:48:47.587 に答える
0

これを一度試してください:

$("#button").click(function(){
    // Your code...
    $.post();

    // just add return false here
    return false;
});
于 2012-12-08T09:12:00.963 に答える
0

#body div の外にボタンを配置することで問題が解決するかどうかを確認してください....

于 2012-12-08T11:43:00.480 に答える