0

有人能告诉我为什么每次我点击一个有 jQuery 发布功能的按钮时,它会发送两次帖子,而下次我按下按钮时,它会发送两倍于上次的信息,依此类推?我在谷歌上搜索,我发现unbind()但它工作得不是很好,我不知道在谷歌上搜索什么来解决这个问题。

$(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

为什么不使用直播。

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

Jquery.live 处理事件委托并删除附加到先前呈现的元素的任何幽灵事件侦听器。

于 2012-12-09T14:18:30.400 回答
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

如果您没有将多个click事件绑定到div#button,请仔细检查您没有在页面中多次包含您的 jQuery。

于 2012-12-08T09:07:49.247 回答
0

检查在#body div之外放置按钮是否可以解决问题....

于 2012-12-08T11:43:00.480 回答