我有像Facebook这样的php评论系统,用户可以发表评论和回复。当我一个接一个地在评论中做出2回复时,我不能在同一评论中做出第3回复。此外,这里无法使用表情符号幻灯片和上传切换。但可以回复别人的评论。我无法理解这种类型的jQuery行为!我也无法理解,php可以创建这类问题吗?
对于表情符号显示我在textarea后面创建了审阅窗口并使我的textarea透明。所以在这里我使用了jQuery bind()。所有评论和回复都由AJAX提交。
当我第三次回复时,它在同一评论中不起作用。但是刷新它的工作后只能回复2次。
这是一些相关的jQuery:
$('.maintbox').on('keyup',function() {
$(this).css('height','auto');
$(this).css('height',Math.max(this.scrollHeight)+'px');
});
$('.replycom').livequery("click",function() {
var VID = $(this).attr('id').replace('replycom','');
$("#parent_id").attr("value", VID);
$("#replycom"+VID).bind("keyup", function() {
$("#replycom"+VID).html($(this).val());
$(".review"+VID).html(smilyMe($("#replycom"+VID).val()));
});
return false;
});
$('.showhide_emobox').livequery("click",function(){
var EID = $(this).attr("id");
$("#emobox"+EID).slideToggle();
});
$(".embtno").livequery("click",function(event){
var emotiText = $(event.target).attr("alt");
var EID = $(this).attr('id').replace('','');
var prevMsg = $("#replycom"+EID).val();
$("#replycom"+EID).val(prevMsg + emotiText);
$(".review"+EID).html(smilyMe($("#replycom"+EID).val()));
$('#emobox'+EID).fadeToggle();
});
我的表格:
echo'<div class="replyform"><ul>
<form action="" method="post" class="repfrm'.$rows['id'].'" id="prepfrm">
<fieldset id="cmntfs">
<input type="hidden" name="username" id="author" value="'.$_SESSION['username'].'"/>
<input type="hidden" name="url" id="url" value="" />
<div class="maintbox">
<div class="chat">
<div class="review'.$rows['id'].'" id="review"></div>
<textarea name="replycom" id="replycom'.$rows['id'].'" class="replycom" placeholder="Type your comment ..."></textarea>
</div>
<div align="right"><img src="images/envlop.png" width="25" alt="" class="uploadReply" id="'.$rows['id'].'" style="padding:2px;cursor:pointer;" />
<div class="em">
<img src="images/smile.png" id="'.$rows['id'].'" class="showhide_emobox"/>
<div id="emobox'.$rows['id'].'" class="emobox">
<img src="smilies/smile.gif" alt=":)" class="embtno" id="'.$rows['id'].'" />
<img src="smilies/sad.gif" alt=":(" class="embtno" id="'.$rows['id'].'" />
<img src="smilies/biggrin.gif" alt=":-D" class="embtno" id="'.$rows['id'].'" />
</div>
</div>
</div>
<input type="hidden" name="parent_id" id="parent_id" value="'.$rows['id'].'" />
<input type="hidden" name="tutid" id="tutid" value="'.$tutid.'" />
</form>
// Image upload system here
</div>
<button type="submit" name="submit" value="" id="repl'.$rows['id'].'" class="replyfrm">Post Reply</button>
</fieldset>
</ul></div>';
答案 0 :(得分:0)
您正在使用:
$("#replycom"+VID)
只能有一个同名的id。您的第一个回复会获得唯一ID,您的第二个回复会重复,并且您的代码会停止工作。