1

我在我正在处理的网站中使用 .live() ,它似乎运行不正常,这是我的代码:

$('.comment_cheer').live("click",function(e){

    e.preventDefault();

    var id          = $(this).attr('rel');
    var url         = $(this).attr('href');
    var thisClass   = this;

    if(like2 == true){
    like2 = false;   

        setTimeout(function(){
            $.post(url,function(data){

                $(thisClass).fadeOut('slow').fadeIn();
                $(thisClass).removeClass('remove');
                $(thisClass).addClass('add');                            
                $('#boo_click_'+id).hide();

                like2 = true;
             });       
        },500);
    }

    return false;

});

我想要的是,在我发表评论后,我可以选择在 Cheer 和 Boo 之间点击,当我点击其中任何一个时,例如 Cheer,可点击的 Boo 将消失以防止用户点击它,但它不起作用我想让它工作。有人可以在这里指导我吗?

这是我在 Cheer 和 Boo 链接中使用的代码:

    <!--Cheer!-->
<span id="cheer_click_<?php echo $all_post['comment_id'];?>" class="add" rel="<?php echo $all_post['comment_id']?>">
    <a  href    ="<?php echo base_url().'socket/likes/'.$all_post['comment_id']?>"
        class   ="comment_cheer"
        rel     ="<?php echo $all_post['comment_id']?>"
        target  ="num_likes_<?php echo $all_post['num_likes']?>"

    ><span><i class="cheer_icon button_icons_profile_13 padr5"></i>Cheer!</span></a>
</span>
<!--Boo!-->
<span id="boo_click_<?php echo $all_post['comment_id'];?>" class="remove red" rel="<?php echo $all_post['comment_id']?>">
    <a  href    ="<?php echo base_url().'socket/unlike/'.$all_post['comment_id']?>"
        class   ="comment_boo"
        rel     ="<?php echo $all_post['comment_id']?>"
        target  ="num_boos_<?php echo $all_post['num_likes']?>"

    ><span><i class="cheer_icon button_icons_profile_14 padr5"></i>Boo!</span></a>
</span>
4

1 回答 1

0

您是否在点击处理程序之外定义了like2某个地方并为其赋值true?如果它不是 true 或未定义,Boo单击 时不会消失Cheer。检查这个小提琴。我已经禁用了 ajax 帖子。

问题也可能是您的 ajax 发布失败,因此回调函数没有运行。在回调中执行控制台日志以确保调用该函数。

于 2013-07-16T19:19:29.017 回答