JS Tree为外部ajax设置

时间:2012-03-02 13:17:30

标签: jquery jstree

我正在根据http://www.jstree.com/documentation/json_data的文档开发一个使用JS Tree和json数据以及ajax的应用程序。

$("#tree).jstree({
    "json_data": {
        "ajax": { ... }
    } ....
});

在文档的其他地方还有其他jquery ajax调用。现在,树在其自己的名称空间内进行ajax调用,因此与其他ajax函数没有冲突。由于服务器响应ajax调用的问题,我需要通过文件的其余部分使用的公共ajax处理程序重定向树的ajax调用,然后让该处理程序将数据返回给树。

有人可以建议如何将树的调用重定向到另一个函数并设置回调以将数据返回给树吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我会给你一个想法。不确定它是否符合您的要求,可能您需要更多地解决这个问题,但它与我从您的问题中理解的内容非常接近:

documentation中所述的 json_data插件jQuery ajax settings object

几乎相同

考虑到这一点,您可以将ajax查询重定向/执行到使用beforeSend() callback function

的自定义函数
    "json_data": { 
        "ajax": {
            beforeSend: function(xhr) {
                my_custom_function(xhr);
            }
        }
    }

定义一个自定义函数,您可以接管 XHR对象并根据需要进行调整:

function my_custom_function(xhr) {
    $.ajax($.extend(xhr, {
        type: 'GET',
        url:  '/folders/tree_handler.json',
        data: { 
            "operation": "get_children", 
            "parent_id": 1
        }
    }));

    return false;
}

我在这里做的是设置URL,请求类型(GET)以及一些您可能希望作为另一个对象传递给自定义函数的参数,不管什么都比较方便(例如,你会希望parent_id是可变的。)

您需要在此自定义函数中返回 false ,以便第一个调用者请求被取消。

请告诉我它是否有用。