【问题标题】:jQuery: it addclass, remove class itself?jQuery:它添加类,删除类本身?
【发布时间】:2010-09-05 23:09:43
【问题描述】:
$(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);
      }
    });
}

我有这个问题,当我点击 a#fav 然后它 addClass 活动,并删除它并添加和删除并发送一堆 ajax 本身.. 它发疯了。 我不希望这样,我想要它,所以当你点击 a#fav 时它会添加类(发送 ajax 调用),然后当你再次点击它时它会发送 ajax 调用并删除类。就这样继续下去..

我做错了什么?

【问题讨论】:

  • 您是否还在阅读问题的答案?我在你的最后一个问题中answered this specifically。阅读您已经的答案比提出另一个重复的问题要快。

标签: jquery


【解决方案1】:

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

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

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

(以后addFav 也一样)

【讨论】:

  • .bind('click', removeFav(id) 看起来不对,需要匿名包装,+1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-03
  • 2011-10-31
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多