怎么了家伙?看...我的网页有一个评论系统......我整整一周都在处理这个小问题。我真的需要一些帮助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>
答案 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');