Javascript 尝试使用不同的参数调用selectize,但它使用旧值运行
我有一个函数,它接收一个参数,然后调用[selectize.js][1] 最初我使用Javascript 尝试使用不同的参数调用selectize,但它使用旧值运行,javascript,jquery,ajax,selectize.js,Javascript,Jquery,Ajax,Selectize.js,我有一个函数,它接收一个参数,然后调用[selectize.js][1] 最初我使用paramequal 1调用myFunc。它可以工作,数据来自服务器,我得到了一个下拉列表 但是后来我用另一个param值调用myFunc,比如说2 我在控制台中看到,myFunc接收到2,但是load函数和ajaxsuccess函数日志1被加载到控制台中,并且数据看起来好像param值是1 如果我第一次调用myFunc时param等于2,那么数据就好像param的值是2一样 我尝试向load和ajaxsucce
param
equal 1调用myFunc
。它可以工作,数据来自服务器,我得到了一个下拉列表
但是后来我用另一个param
值调用myFunc
,比如说2
我在控制台中看到,myFunc
接收到2,但是load
函数和ajaxsuccess
函数日志1被加载到控制台中,并且数据看起来好像param
值是1
如果我第一次调用myFunc
时param
等于2,那么数据就好像param
的值是2一样
我尝试向load
和ajaxsuccess
函数cache:false
添加内容。但是load
函数继续使用旧的param
值
function myFunc(param) {
console.log(param);
$("#select-control").selectize({
valueField: 'id',
labelField: 'name',
searchField: 'name',
options: [],
create: false,
render: {
option: function(item, escape) {
return '<div>' + escape(item.name) + '</div>';
}
},
score: function(search) {
return function(item) {
return 1;
}
},
load: function (query, callback) {
console.log("selectize loading data");
console.log(param);
this.clearOptions();
$.ajax({
url: "/api/some/end/point",
type: 'GET',
data: {
q: query,
some_param: param
},
error: function () {
callback();
},
success: function (res) {
console.log(res);
console.log(param);
callback(JSON.parse(res));
},
});
}
});
}
我刚刚为
param
添加了全局变量,然后使用它
var globalParam;
function myFunc(param) {
globalParam = param;
// ...
/* use globalParam instead of param later*/
// ...
}
我不知道为什么没有全局变量它就不能工作你能把所有日志打印出来吗?如果我的想法是正确的,那么第一个
控制台
不可能输出与加载函数内部的控制台
不同的内容,而加载函数刚刚从控制台发布了值。第一次正确时,firstconsole
不会输出不同的内容,但第二次调用myFunc时会输出不同的内容。
var globalParam;
function myFunc(param) {
globalParam = param;
// ...
/* use globalParam instead of param later*/
// ...
}