Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用不同的参数调用selectize,但它使用旧值运行_Javascript_Jquery_Ajax_Selectize.js - Fatal编程技术网

Javascript 尝试使用不同的参数调用selectize,但它使用旧值运行

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

我有一个函数,它接收一个参数,然后调用[selectize.js][1]

最初我使用
param
equal 1调用
myFunc
。它可以工作,数据来自服务器,我得到了一个下拉列表

但是后来我用另一个
param
值调用
myFunc
,比如说2

我在控制台中看到,
myFunc
接收到2,但是
load
函数和ajax
success
函数日志1被加载到控制台中,并且数据看起来好像
param
值是1

如果我第一次调用
myFunc
param
等于2,那么数据就好像
param
的值是2一样

我尝试向
load
和ajax
success
函数
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*/
    // ...
}

我不知道为什么没有全局变量它就不能工作

你能把所有日志打印出来吗?如果我的想法是正确的,那么第一个
控制台
不可能输出与加载函数内部的
控制台
不同的内容,而加载函数刚刚从控制台发布了值。第一次正确时,first
console
不会输出不同的内容,但第二次调用
myFunc时会输出不同的内容。
var globalParam;

function myFunc(param) {
    globalParam = param;

    // ...
    /* use globalParam instead of param later*/
    // ...
}