2010-09-05 44 views
2
function addFav(){ 
    $.ajax({ 
     url: "/favorites/add", 
     data: {"id": articleID}, 
     success: function(){ 
      $('a#fav') 
       .addClass('active') 
       .attr('title','[-] Remove as favorite') 
       .unbind('click') 
       .bind('click','removeFav') 
      ; 
     } 
    }); 
} 

function removeFav(){ 
    $.ajax({ 
     url: "/favorites/remove", 
     data: {"id": articleID}, 
     success: function(){ 
      $('a#fav') 
       .removeClass('active') 
       .attr('title','[+] Add as favorite') 
       .unbind('click') 
       .bind('click','addFav') 
      ; 
     } 
    }); 
} 

$('a#fav').bind('click','addFav'); 

这就是我现在所拥有的。 当我点击#fav时没有任何反应,是否因为我需要将它包装在document.ready中? 我试过了,但后来我从jQuery库中得到一个错误?在FirebugjQuery绑定问题

d is undefined 
Line 49 

回答

1

您应该传递函数(而不是字符串)作为第二个参数来bind,如:

$(document).ready(function() {  
    $('a#fav').bind('click', addFav); 
}); 

一定要做到这一点在您$(document).ready(...在上面的例子中,并记得在两个函数中修复bind调用。

+0

+1 - 应该补充他*确实*需要一个'document.ready',如果它需要获取错误并且他目前没有收到错误:) – 2010-09-05 11:25:08

+0

感谢Nick,编辑。 – karim79 2010-09-05 11:27:57