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。

4

2 回答 2

3

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

改变:

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

到:

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

它会将点击委托给尚不存在的元素,该事件将从取消关注按钮冒泡,直到它点击具有事件绑定的link_visitor_follow,并且由于它来自取消关注按钮,它现在将调用该事件(如果这有意义的话) .

此外,您需要对关注按钮执行相同的操作,以防他们关注、取消关注,然后再次关注。

于 2013-05-01T07:34:38.603 回答
0

Dave 的回答应该足以解决您的问题,但如果您使用 1.7 版以下的 jQuery,您可以尝试这些;

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

   //your code here

})
于 2013-05-01T07:53:25.927 回答