这是我的剧本:
var ckit = (function($){
var data = [{
"option": "com_easysocial",
"userId": localStorage.getItem("ckuser"),
"layout": "getSample",
"view": "conversations",
"format": "json",
"limit": 1
}];
var Data = 'default';
function ajaxCall(opt, arg){
// for(var i=0; i< opt.length; i++){
var opt = jQuery.extend({}, data[0], opt[0]);
this.Data = opt['layout'];
var str = opt['layout'].replace("get", "");
str = str.toLowerCase();
token = window.es.token;
opt[token] = "1";
var res;
jQuery.ajax({
method: "POST",
url: localStorage.getItem("root")+"/index.php",
"data": opt,
error: function() {
alert('error');
},
success: function(result) {
console.debug(result);
var data = result.data[str];
return data;
}//end success
});//end ajax
// }
}
return {
open: function(){
$('[data-ckit-full]').removeClass("is-hidden");
$('[data-ckit-compact]').addClass("is-hidden");
$('body').addClass("disable-scrolling");
// $("html").css({"height": "100%", "overflow": "hidden"});
$("body").css({"position": "relative"});
},
render: function(opt){
if(typeof opt === 'object')
{
var list = {
data : [opt]
}
var display = ajaxCall.bind (null, ajaxCall.call (list, list.data));
console.debug(display);
}
}
};//end return
})(jQuery);
这就是我在firefox中的控制台中看到的
bound ajaxCall()//for console.debug(display);
Object { data={...}}//console.debug(result);
我试图做的就是将对象从ajax成功函数传递给调用显示变量。但是它没有返回对象。而且在ajax之前首先执行了对ajax调用的绑定调用。
这样做的正确方法是什么?