Не забудьте отметить «[x] Показать все настройки» внизу формы, иначе вы не сможете увидеть «Все языки».
function ChangeDasPanel(controllerPath, postParams, f) {
$.get(
controllerPath,
postParams,
function(returnValue) {
var $DasSpace = $('#DasSpace');
$DasSpace.hide(
"slide", { direction: "right" }, 1000,
function() {
$DasSpace.contents().remove();
$DasSpace.append(returnValue).css("display", "block");
$DasSpace.show("slide", { direction: "right" }, 1000);
}
);
if (typeof f == "function") f(); else alert('meh');
}
);
};
Вы можете передавать функции как любой другой объект в JavaScript. Передать функцию обратного вызова очень просто, вы даже можете сделать это самостоятельно в вызове $. Post ()
.
Вы можете решить, хотите ли вы, чтобы обратный вызов вызывал как часть $. post ()
обратный вызов или самостоятельно.
Если я вас правильно понял, это так же просто, как установить другой параметр и вызвать переменную как функцию:
function foo(mycallback) {
mycallback();
}
Почему бы и нет вы используете объект, который можно передать функции. Это намного больше похоже на jQuery, и это избавляет вас от наличия x именованных параметров, которые трудно поддерживать, поскольку они могут стать громоздкими, когда вы перейдете через 3 параметра.
например,
function callingFunction(){
var fnSettings: {
url: someUrl,
data: params,
callback : function(){}
};
yourFunction( fnSettings );
}
function yourFunction( settings ) {
$.post( settings.url, settings.data, settings.callback );
}
Вы знаете, что глобальные переменные и функции - зло, так почему бы не поместить свои в пространство имен jQuery:
$.extend({
myFunc : function(someArg, callbackFnk){
var url = "http://example.com?q=" + someArg;
$.getJSON(url, function(data){
// now we are calling our own callback function
if(typeof callbackFnk == 'function'){
callbackFnk.call(this, data);
}
});
}
});
$.myFunc(args, function(){
// now my function is not hardcoded
// in the plugin itself
});
Прочтите этот пост, чтобы лучше понять понимание: Создание функций обратного вызова в jQuery