jQuery在帖子中第二次回复后停止工作

时间:2015-02-04 15:53:17

标签: php jquery

我有像Facebook这样的php评论系统,用户可以发表评论和回复。当我一个接一个地在评论中做出2回复时,我不能在同一评论中做出第3回复。此外,这里无法使用表情符号幻灯片和上传切换。但可以回复别人的评论。我无法理解这种类型的jQuery行为!我也无法理解,php可以创建这类问题吗?

对于表情符号显示我在textarea后面创建了审阅窗口并使我的textarea透明。所以在这里我使用了jQuery bind()。所有评论和回复都由AJAX提交。

当我第三次回复时,它在同一评论中不起作用。但是刷新它的工作后只能回复2次。

enter image description here

这是一些相关的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>';

1 个答案:

答案 0 :(得分:0)

您正在使用:

 $("#replycom"+VID)

只能有一个同名的id。您的第一个回复会获得唯一ID,您的第二个回复会重复,并且您的代码会停止工作。