gpt4 book ai didi

javascript - js变量在ajax中不更新

转载 作者:行者123 更新时间:2023-11-28 08:24:09 27 4
gpt4 key购买 nike

我使用 jstree 并希望使用新数据重新加载它,但无法将其发送到新数据。

var $driver = 0;

$(document).ready(function () {
$('#tree_folder').jstree({
'core': {
'check_callback': true,
"themes": {
"responsive": false
},
'data': {
type: "POST",
url: "Doc.aspx/Folder",
data: function () { return '{"driver":"' + $driver + '"}' },
contentType: "application/json"
}
}
});
});


$(document).on('click', '.tile', function () {
var $item = $(this);
var $driver = $item.attr('data-driver');
// alert($driver);
$('#tree_folder').jstree('refresh');
});

单击时我得到了新值,它每次都会发送旧的默认数据。上面的警报函数中,尽管 json post send 默认值是用函数写入的,但它可以给我正确的值

function () { return '{"driver":"' + $driver + '"}' }

如何从变量中获取新值?

最佳答案

.tile点击函数中删除$driver之前的var,因为您之前是创建全局的,

试试这个,

$(document).on('click', '.tile', function () {
var $item = $(this);
$driver = $item.attr('data-driver'); // remove var from this line
// alert($driver);
$('#tree_folder').jstree('refresh');
});

还可以在jstree中使用cache:false,例如,

function getDriver() {
return '{"driver":"' + $driver+ '"}';
}

$(document).ready(function () {
$('#tree_folder').jstree({
'core': {
'check_callback': true,
"themes": {
"responsive": false
},
cache: false, // cache false
'data': {
type: "POST",
url: "Doc.aspx/Folder",
data: getDriver(), // get updated driver
contentType: "application/json"
}
}
});
});

另请查看change ajax options in jstree from server

关于javascript - js变量在ajax中不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22627758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com