2013-05-01 115 views
0

我试图做一个“关注”按钮,但返回的数据,这是'取消关注'按钮,不起作用。

$('.follow_button').click(function() { 
    //event.preventDefault(); 
    var visitor_user_id = $('.follow_button').attr('id'); 

    $('#link_visitor_follow').empty().append('<div id = "follow_jquery_btn"><img src = "css/images/ajax_follow.gif" width = "12" height = "12" /> Follow</div>'); 
    $.post('/unime/user_follow.php', {'type':'follow_me', visitor_user_id:visitor_user_id}, function(data){ 
     if(data){ 
      $('#link_visitor_follow').empty().html(data); 
     } 
    }); 
    return false; 
}); 

$('.unfollow_button').click(function() { 
    //event.preventDefault(); 
    var visitor_user_id = $('.unfollow_button').attr('id'); 
    $('#link_visitor_unfollow').empty().append('<div id = "follow_jquery_btn"><img src = "css/images/ajax_follow.gif" width = "12" height = "12" /> Following</div>'); 
    $.post('/unime/user_follow.php', {'type':'unfollow_me', visitor_user_id:visitor_user_id}, function(data){ 
     if(data){ 
      $('#link_visitor_unfollow').empty().html(data); 
     } 
    }); 
     return false; 
}); 

PHP返回的数据:

echo "<a class = 'unfollow_button' id = 'visitor_".$visitor_user_id."'><span id = 'check_mark'></span> Unfollow</a>"; 

当我点击取消关注按钮,它不工作,虽然我的代码设置它。 PHP本身没有任何问题。当我点击取消关注时,它甚至不会调用Ajax。

+0

只是一个建议,你应该使用'“',而不是'''你的标签属性! – PoulsQ 2013-05-01 07:39:08

+0

@PoulsQ当你输出HTML属性..而且这不会改变任何东西,将是难看。 – 2013-05-01 07:43:15

+0

这是你的想法,但它是一个W3C推荐。 – PoulsQ 2013-05-01 07:45:55

回答

3

您只能绑定到当前存在的元素。如果他们不这样做,则需要委托给存在的元素。

变化:

$('.unfollow_button').click(function() { 

要:

$('#link_visitor_follow').on('click', '.unfollow_button', function() { 

它将委派点击到尚未存在的元素,本次活动将自取消关注按钮,泡沫,直到它击中link_visitor_follow,它有一个事件绑定,并且因为它来自取消关注按钮,它现在将调用事件(如果这是有道理的)。

此外,您还需要对跟随按钮做同样的事情,以防他们跟随,取消关注,然后再跟踪。

+0

欲了解更多信息,请参阅http://jquery.com/upgrade-guide/1.9/#live-removed – Waygood 2013-05-01 07:35:27

+0

感谢您的回复...它仍然无法正常工作。 – Cole 2013-05-01 07:52:49

+0

NEVERMIND!FIXED IT!THANKS ! – Cole 2013-05-01 07:55:17

0

Dave答案应该足以满足您的问题,但如果您使用的是版本1.7以下的jQuery,那么您可以试试这些;

$('.unfollow_button').live('click', function() { 

    //your code here 

}) 
相关问题