2013-12-17 39 views
1

好的,所以我對如何在JavaScript中創建回調以及jQuery的混合有點困惑。用Javascript創建回調

這是我想做什麼:

function saveArtDep(vars, callback) { 
     $.ajax({ 
      url: 'j_artDepAjax.php', 
      type: 'POST', 
      data: vars, 
      success: function(data) { 
       // callback to fire when success 
      } 
     }); 
} 

我想這樣做的原因是爲了能夠重新使用該功能,並具有用於什麼,我需要一個不同的「加載」消息對於。換句話說,情景如下:

$('div#job').html('loading...'); 

saveArtDep('job_id=3&update_art=true', function(){ 
      $('div#job').html('success!'); 
}); 

任何幫助將是偉大的!

回答

1

調用它,你幾乎擁有了。您可以將任何內容傳遞給callback,我們在執行它之前確保它是一個函數,在下面的代碼中。

function saveArtDep(vars, callback) { 
    $.ajax({ 
     url: 'j_artDepAjax.php', 
     type: 'POST', 
     data: vars, 
     success: function(data) { 
      // callback to fire when success 
      if (typeof callback === 'function') { 
       callback(); 
      } 
     } 
    }); 
} 
+0

你是絕對正確的,我知道這是這麼簡單的東西..我不知道爲什麼當時對我來說沒有意義。 – Dimitri

+0

@Dimitri那沒關係:) – thefourtheye

2

saveArtDep參數callback指功能,這樣你就可以使用callback()

function saveArtDep(vars, callback) { 
     $.ajax({ 
      url: 'j_artDepAjax.php', 
      type: 'POST', 
      data: vars, 
      success: function(data) { 
       // callback to fire when success 
       callback(); 
      } 
     }); 
} 
+0

你有一個錯字那裏 - callbakc()應該是回調() – mockaroodev

+0

@skydump感謝..固定 –

1
success: function(data) { 
    if(typeof callback == 'function') { 
     callback(data); 
    } 
}