jQuery:它是addclass,删除类本身?

时间:2010-09-05 15:04:49

标签: jquery

$(document).ready(function() {    
    $('a#fav').bind('click', function() {
        addFav(<?php echo $showUP["uID"]; ?>);
    });
});


function addFav(id){
    $.ajax({
      url: "misc/favAdd.php",
      data: { id: id},
      success: function(){
           $('a#fav')
                 .addClass('active')
                 .attr('title','[-] Remove as favorite')
                 .unbind('click')
                 .bind('click', removeFav(id))
           ;
                jGrowlTheme('wallPop', 'mono', '[+] Favorit', 'Du har nu lagt till denna profil som favorit', 'images/addFavorit_hover2.png', 1000);
      }
    });
}

function removeFav(id){
    $.ajax({
      url: "misc/favRemove.php",
      data: { id: id },
      success: function(){
            $('a#fav')
                 .removeClass('active')
                 .attr('title','[+] Add as favorite')
                 .unbind('click')
                 .bind('click', addFav(id))
            ;
                            jGrowlTheme('wallPop', 'mono', '[-] Favorit', 'Du har nu tagit bort denna profil som favorit', 'images/addFavorit_hover2.png', 1000);
      }
    });
}

我有这个问题,当我点击一个#favs然后addClass活动,并删除它并添加和删除并发送一堆ajax本身..它变得疯狂。 我不希望这样,我想拥有它,所以当你点击#ef上它添加类(发送ajax调用)然后当你再次点击它时它会发送ajax调用并删除该类。它继续这样......

我做错了什么?

1 个答案:

答案 0 :(得分:3)

通过撰写.bind('click', removeFav(id)),您立即调用removeFav 并将其返回值传递给bind函数。

相反,您需要传递一个调用removeFav的函数,如下所示:

             .bind('click', function() { removeFav(id); })

(同样适用于addFav之后)

相关问题