jQuery .live()问题,不起作用?

时间:2012-05-09 23:56:04

标签: jquery

我在一个正在使用的网站中使用.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>

1 个答案:

答案 0 :(得分:0)

您是否在点击处理程序之外的某处定义了like2并为其指定了值true?如果不正确或未定义,Boo在您点击Cheer时不会消失。检查此fiddle。我虽然禁用了ajax帖子。

问题还可能是你的ajax帖子失败了,结果回调函数没有运行。在回调中执行控制台日志以确保调用该函数。