Js变量不会在ajax中更新

时间:2014-03-25 07:15:06

标签: javascript jquery ajax post jstree

我使用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发送默认的一个偶数数据是用函数写的,但它可以给我正确的值

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

如何从变量中获取新值?

1 个答案:

答案 0 :(得分:0)

从[{1}} var之前移除$driver,因为您之前是.tile click function

试试这个,

created global

同样在$(document).on('click', '.tile', function () { var $item = $(this); $driver = $item.attr('data-driver'); // remove var from this line // alert($driver); $('#tree_folder').jstree('refresh'); }); 中使用cache:false

jstree

另请查看change ajax options in jstree from server