[英]How to write a jQuery function with a callback that you can pass Params to?
我有以下功能:
function loadProjects(pID) {
$.ajax({
url: myURL,
success: function (dataJS) {###Run any supplied call back here####}
});
}
我像這樣調用該函數loadProjects(1);
問題是我希望能夠在成功之后定義一個CallBack函數,並且在執行loadProjects(1,pong(12))時想將其包括在內。 我希望能夠為回調提供參數。
我如何讓一個函數接受回調? 如何將回調傳遞給該函數?
就像是
function loadProjects(pID, callback) {
$.ajax({
url: myURL,
success: function (dataJS) {###Run any supplied call back here####}
});
}
然后我可以打電話給的地方:
loadProjects(22, pong(12))
問題是當我嘗試此操作時,pong(12)立即運行,而不是稍后在loadProjects函數中調用時運行嗎?
有想法嗎? 謝謝
嘗試這個:
function loadProjects(pID, callback) {
$.ajax({
url: myURL,
success: function (dataJS) {
if ($.isFunction(callback))
callback();
}
});
}
loadProjects(1, function() { pong(12); });
要么:
function loadProjects(pID, callback, value) {
$.ajax({
url: myURL,
success: function (dataJS) {
if ($.isFunction(callback)) {
if (value) {
callback(value);
}else{
callback();
}
}
}
});
}
loadProjects(1, pong, 12);
loadProjects(22, function(){pong(12);});
嘗試這樣的事情:
var loadProjects = (function(pID, callback) {
var params = { "property" : "value" }
$.ajax({
url: myURL,
success: function (dataJS) { callback(params); }
});
})
loadProjects(22, function(p){ console.log(p); });
function loadProjects(pID, callback) {
var callbackArgs = arguments;
callbackArgs.shift();
callbackArgs.shift();
$.ajax({
url: myURL,
success: function (dataJS) {
// Null or this can be used depending on desired behavaiour
// See https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/function/apply
callback.apply(null, callbackArgs);
}
});
}
用法示例:
loadProjects(22, pong, 12);
loadProjects(22, pong, 12, 'foo', 'bar');
12,foo和bar都傳遞給pong回調。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.