2010-09-05 74 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