“已完成”替换为“已完成”; } } }); }); $([id^='toggle'])。单击(函数(事件){ event.preventDefault(); $(“div[id='replypost'+$(this.attr('id').replace('toggle','')+'])toggle(); }); var-likecounter=0; var dislikecounter=0; $([a[id^='like_']])。单击(函数(事件){ event.preventDefault(); var值=$(this.attr(“id”).replace('like_u',''); $.ajax({ url:“./like.php?id=“+value+”&sname=“, 成功:函数(html){ if(html&&likecounter==0&&dislikecounter==0){ $(“#commentpanel_389;”+value).append(“您喜欢这篇文章”); likecounter=1; }否则{ $(“div#loadmorecomments”)。替换为(“div#done”); } } }); }); $([a[id^='dislike_']])。单击(函数(事件){ event.preventDefault(); var值=$(this.attr(“id”).replace('dishate_uu',''); $.ajax({ url:“./不喜欢.php?id=“+value+”&sname=“, 成功:函数(html){ if(html&&likecounter==0&&dislikecounter==0){ $(“#commentpanel”+value).append(“你讨厌这篇文章”); dislikecounter=1; }否则{ $(“div#loadmorecomments”)。替换为(“div#done”); } } }); });

“已完成”替换为“已完成”; } } }); }); $([id^='toggle'])。单击(函数(事件){ event.preventDefault(); $(“div[id='replypost'+$(this.attr('id').replace('toggle','')+'])toggle(); }); var-likecounter=0; var dislikecounter=0; $([a[id^='like_']])。单击(函数(事件){ event.preventDefault(); var值=$(this.attr(“id”).replace('like_u',''); $.ajax({ url:“./like.php?id=“+value+”&sname=“, 成功:函数(html){ if(html&&likecounter==0&&dislikecounter==0){ $(“#commentpanel_389;”+value).append(“您喜欢这篇文章”); likecounter=1; }否则{ $(“div#loadmorecomments”)。替换为(“div#done”); } } }); }); $([a[id^='dislike_']])。单击(函数(事件){ event.preventDefault(); var值=$(this.attr(“id”).replace('dishate_uu',''); $.ajax({ url:“./不喜欢.php?id=“+value+”&sname=“, 成功:函数(html){ if(html&&likecounter==0&&dislikecounter==0){ $(“#commentpanel”+value).append(“你讨厌这篇文章”); dislikecounter=1; }否则{ $(“div#loadmorecomments”)。替换为(“div#done”); } } }); });,php,javascript,html,ajax,mysqli,Php,Javascript,Html,Ajax,Mysqli,我想知道为什么当我点击锚定标签时,它只是刷新页面,而没有调用javascript函数 注意:原始页面具有与发布注释和调用javascript函数完全相同的格式,它工作得非常好。唯一不工作的时间是从调用的loadmorecomments.php文件加载注释时 我知道这是一个棘手的问题,如果我能进一步澄清,请让我知道谢谢。你可以尝试在锚定标记的href=“”属性中添加,该属性具有切换ID。例如最近的帖子已删除 新答案。我知道它不会那么干净,但请尝试在loadmorecomments.php中添加脚本

我想知道为什么当我点击锚定标签时,它只是刷新页面,而没有调用javascript函数

注意:原始页面具有与发布注释和调用javascript函数完全相同的格式,它工作得非常好。唯一不工作的时间是从调用的loadmorecomments.php文件加载注释时


我知道这是一个棘手的问题,如果我能进一步澄清,请让我知道谢谢。

你可以尝试在锚定标记的
href=“”
属性中添加
,该属性具有切换ID。例如
最近的帖子已删除


新答案。我知道它不会那么干净,但请尝试在
loadmorecomments.php
中添加
脚本,以便在添加新注释时加载它。

很难从您发布的代码片段中分辨出来,但我想您是说第二个和第三个代码片段是通过ajax加载的。如果是这样,我会作为js,您的问题是什么(第三段)在通过ajax加载时不会执行。最简单的解决方案是将此javascript包含在主js文件中,并对其进行修改,以便它能够处理尚未加载的dom元素。您似乎正在使用JQuery,因此如果使用JQuery 1.7+,您可以获得所需的所有详细信息。如果没有,请查看哪一个更容易(但iOS Safari很棘手).

答案来自@reikyushin,我应该使用live()函数来处理点击。非常感谢所有试图帮助回答这个问题的人!!

编辑:

我意识到
live()
函数已被弃用,并且将在1.9版上删除,因此为了大家的缘故,我编辑了我的答案。您应该改用
on()
函数。谢谢


我会尽力解释清楚的

正如我的评论所引用的


“难道你不应该用
live()
而不是
click()
?见。。现在和将来为与当前选择器匹配的所有元素附加一个事件处理程序。

现在,问题是。。有什么区别

使用
click()
会将事件处理程序添加到您在jQuery中指定的选择器的所有目标,它解释了
live()
前面的API描述中的“现在”

例如:
$([id^='toggle'])
在调用该函数时将仅应用于所有DOM对象

因此,插入DOM的所有新对象都不会有“事件处理程序”

但与
live()
不同的是,所有与原始选择器匹配的对象仍然会被您添加的事件绑定,这解释了
$("#loadmorecomments").click(function(){

 $('div#loadmorecomments').show();
  .ajax({
      url: "loadmorecomments.php?lastComment=" + $(".post:last").attr("id") + "&sname=<?php echo $link ?>",
            success: function(html){
                  if(html){
                    $("#postspace").append(html);
                    $("div#loadmorecomments").hide();

                     else{
                        ("div#loadmorecomments").replaceWith("div#done");
                    }
                });

});
 if($stmt = mysqli_prepare($mysqli, "SELECT post.text,post.username,post.id,post.likes,post.dislikes,post.image,users.avatar FROM post LEFT JOIN users ON post.username = users.username WHERE post.school='$sname' AND post.id < $lastcomment ORDER BY post.id DESC LIMIT 0,10")){
                               mysqli_stmt_execute($stmt);
                               mysqli_stmt_execute($stmt);
                               mysqli_stmt_bind_result($stmt,$comments,$user, $id,$likes,$dislikes,$image,$avatar);
                                   $counter = 0;
                                   while(mysqli_stmt_fetch($stmt)){


                                     /////////////////Get Image///////////////////
                                            switch($user){
                                                case "Anonymous":
                                                        $img = "design/anonymous.png";
                                                        break;
                                                case $user != "Anonymous" && !empty($avatar):
                                                        $img = $avatar;
                                                        break;
                                                case $user != "Anonymous" && empty($avatar):
                                                        $img = "logo.png";
                                                        break;
                                                }
                                            if(!empty($image) || $image != "images/"){
                                                $comimage = $image;
                                            }else{
                                                $comimage = ""; 
                                            }

                                                   echo "<div class = 'post' id = '$id'>";

                                        echo "<a href = './visitpage.php?userpage='$user'>$user<br /><img src='$img'/></a>";
                                        if(!empty($comimage)){
                                            echo "<img src='$comimage' class='comimage'></img>
                                                    <h3>$comments</h3>
                                                  ";

                                        }else{
                                            echo "<p>$comments</p>";
                                        }

                                        echo "<div style='border: 2px solid #000; height: 40px; margin-right: 20px; margin-left:90px; background: #F1F2F6'class='commentpanel' id='commentpanel_$id'>";
                                        if(in_array($id, $likedcomments)){
                                            echo "<img src='design/liked.png' class='like' /><h4 class='liketext' id='liketext_$id'>You and $likes</h4>";   

                                        }else{
                                            echo " <a href='' id='like_$id'><img src='design/like.png' class='like' /></a><h4 class='liketext' id='liketext_$id'>$likes</h4>";
                                        }
                                        if(in_array($id, $dislikedcomments)){
                                            echo "<img src='design/disliked.png' class='like' /><h4 class='liketext' id='liketext_$id'>You + $dislikes</h4>";   

                                        }else{
                                            echo " <a href='' id='dislike_$id'><img src='design/dislike.png' class='like' /></a><h4 class='liketext' id='liketext_$id'>$dislikes</h4>";
                                        }


                                        $link = urlencode($sname);
                                        echo  "
                                               <a href= '' id ='toggle_$id'><img src='design/reply.png' class='like'/><h4 class='liketext'>Send Message</h4></a>
                                              <a href= './quote.php?text=$comments&school=$link' ><img src='design/quote.png' class='like'/><h4 class='liketext'>Quote Post</h4></a>

                                              </div>

                                               <div class = 'replypost' id='replypost_$id'>
                                                <form action='' method='POST'>
                                                    <input type= 'hidden' name='user' id='user' value='$user' />
                                                    <input type= 'hidden' name='comment' id='comment' value='$comments' />
                                                    <input type='textarea' name='reply' id= 'reply' class='replycomment' />
                                                    <input type= 'submit' id='submit' name='submit' value=' Reply ' class='replybutton' />
                                                </form>
                                              </div>



                                                <br/><br/><br/>
                                             </div>";

                                        $counter++;
                                    }

                                    mysqli_stmt_close($stmt);

                           }

                                    mysqli_close($mysqli);
                           }
                    <script><!---- Load More Comments !---->

                                $("#loadmorecomments").click(function(){

                                    $('div#loadmorecomments').show();
                                                        $.ajax({
                                                               url: "loadmorecomments.php?lastComment=" + $(".post:last").attr("id") + "&sname=<?php echo $link ?>",
                                                               success: function(html){
                                                                   if(html){
                                                                       $("#postspace").append(html);
                                                                       $("div#loadmorecomments").hide();

                                                                   }else{
                                                                        $("div#loadmorecomments").replaceWith("div#done");
                                                                   }
                                                               }
                                                     });

                        });


                            $("a[id ^= 'toggle']").click(function(event){

                                            event.preventDefault();
                                            $("div [id='replypost_"+$(this).attr('id').replace('toggle_','')+"']").toggle();

                                });

                            var likecounter = 0;
                            var dislikecounter = 0;

                            $("a[id ^= 'like_']").click(function(event){
                                    event.preventDefault();

                                    var value = $(this).attr("id").replace('like_','');
                                            $.ajax({
                                                               url: "./like.php?id="+value+"&sname=<?php echo $link ?>",
                                                               success: function(html){
                                                                   if(html && likecounter == 0 && dislikecounter == 0 ){

                                                                       $("#commentpanel_"+value).append("<br/><br/><br /><br /><h4>You Like This Post</h4>");
                                                                       likecounter = 1;

                                                                   }else{
                                                                        $("div#loadmorecomments").replaceWith("div#done");
                                                                   }
                                                               }
                                                     });


                                });

                            $("a[id ^= 'dislike_']").click(function(event){
                                    event.preventDefault();

                                    var value = $(this).attr("id").replace('dislike_','');
                                            $.ajax({
                                                               url: "./dislike.php?id="+value+"&sname=<?php echo $link ?>",
                                                               success: function(html){
                                                                   if(html && likecounter == 0 && dislikecounter == 0 ){

                                                                       $("#commentpanel_"+value).append("<br/><br/><br /><h4>You Hate This Post</h4>");
                                                                       dislikecounter = 1;


                                                                   }else{
                                                                        $("div#loadmorecomments").replaceWith("div#done");
                                                                   }
                                                               }
                                                     });


                                });




          </script>
$("a[id^='toggle']").click(function(event){
//$("a[id^='toggle']).live('click',function(event){ 
//EDIT: this is deprecated. use on() instead, see below:

$(document.body).on('click', 'a[id^="toggle"]', function() {