2012-05-09 6 views
1

Я использую .live() в сайте, что им работать дальше, и кажется, что это не работает хорошо, вот мой код: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> 
+3

Для этого вам не нужно '$ .live', так как пузырь событий щелчка и вы, кажется, не добавляете элемент' .comment_cheer' динамически. Кроме того, '$ .live' устарел. Наконец, я не вижу элемента с классом 'comment_cheer' –

+0

Не знаю, в чем проблема, но подумайте о переходе в' on() ', поскольку' live() 'в основном устарел, но он, вероятно, выиграл «Решите проблемы, которые у вас есть, и поскольку я не читаю текущую переменную PHP, трудно сказать, что происходит! – adeneo

+0

@JuanMendes, я отредактировал свой пост .. посмотрим., – bunsiChi

ответ

0

ли вы определить like2 где-то вне обработчика щелчка и дать ему значение true? Если это не верно или не определено, Boo не исчезнет, ​​когда вы нажмете Cheer. Проверьте это fiddle. Однако я отключил пост ajax.

Проблема также может заключаться в том, что сообщение ajax не удается, и в результате функция обратного вызова не запускается. Сделайте консольный журнал внутри обратного вызова, чтобы убедиться, что функция вызвана.

Смежные вопросы