jquery事件(提交时)影响我的所有div,而不是唯一一个点击按钮的人?

时间:2016-03-28 02:51:10

标签: javascript php jquery ajax

怎么了家伙?看...我的网页有一个评论系统......我整整一周都在处理这个小问题。我真的需要一些帮助x_x ...当用户在我的页面上发表评论时,这个评论会自动显示,感谢ajax,这没关系......

每条评论都可以投票。这是我的问题......这些包含投票形式的div是动态构建的,当我点击按钮在任何评论中发送表单时,结果就是所有评论中出现的数据!而不是出现在点击提交按钮的特定位置,所以我不知道该做什么,我希望你能帮我一把。这是我的代码

形式:

<label > Vote </label>
<form action="vote.php" method="POST" class="form-vote" id="form-vote">
<button class="icon-thumbs-up" id="icon-thumbs-up"></button>
<input hidden="hidden" type="text" name="num-comment" id="num-comment" value="'.$d['id'].'" >
<input  hidden="hidden" type="text" name="point" id="point" value="'.$d['point'].'" >
<p id="actual-points" class="actual-points"> '.$d['point'].'</p> 
<div id="result"  class="result"> </div>
</form>

脚本:

<script type="text/javascript">
$(document).ready function() {

    $('.form-vote')on('submit', function() {

        $.ajax({
            type: 'POST',
            url: $(this).attr('action'),
            data: $(this).serialize(),
            success: function(data) {

                                $('.actual-points').hide();
                                $('.result').html(data).fadeIn('slow');
            }
        })
        return false;
    }); 
})  
</script>

2 个答案:

答案 0 :(得分:1)

您是否尝试保存原始事件的'this'对象并在成功函数中使用它,如下所示:

$('.form-vote')on('submit', function(e) {
  e.preventDefault();
  var $form = $(this); // Save here

  $.ajax({
    type: 'POST',
    url: $(this).attr('action'),
    data: $(this).serialize(),
    success: function(data) {
      // use here
      $form.find('.actual-points').hide();
      $form.find('.result').html(data).fadeIn('slow');
    }
  })
  return false;
}); 

答案 1 :(得分:0)

改变这个:

$('.result').html(data).fadeIn('slow');

到此:

$(this).find('.result').html(data).fadeIn('slow');