2013-05-05 16 views
0

我有三個簡單的功能如何禁用綁定方法中執行的函數?

var loadPoints = function(successCallback, errorCallback) { 
    $.ajax({ 
     method: 'get', 
     url: '/admin/graph/get-points', 
     dataType: 'json', 
     success: successCallback, 
     error: errorCallback 
    }); 

} 

var successLoadPoints = function(points){ 
    console.log('load ok'); 
    //console.log(points); 
// $.each(points,function(i, item){ 
//  console.log(points[i]); 
//  
// }); 

} 
var errorLoadPoints = function() 
{ 
    console.log('error with loading points'); 
} 

我綁定功能loadPoints點擊按鈕

$("button#viewPoints").bind(
        'click', loadPoints(successLoadPoints,errorLoadPoints) 
        ); 

事件,但功能loadPoints而不click事件被執行。 爲什麼?如何解決這個問題?

+0

[ot]我建議使用'on'而不是'bind',這在最新的jQuery中已棄用 – steo 2013-05-05 20:27:34

回答

2

您當前的代碼是調用loadPoints當你想將其綁定,立即觸發Ajax請求。

你的函數應該將使用所傳遞的處理程序成功和錯誤點擊處理函數。這個返回的函數將在點擊時被調用。

var loadPoints = function(successCallback, errorCallback) { 
    return function (event) { 
     $.ajax({ 
      method: 'get', 
      url: '/admin/graph/get-points', 
      dataType: 'json', 
      success: successCallback, 
      error: errorCallback 
     }); 
    }; 
} 

$("button#viewpoints").on("click", loadPoints(successHandler, errorHandler)); 
相關問題