jQuery技术:更改jstree中的AJAX选项并从服务器重新加载树

我正在使用ajax在我的jsTree中加载XML平面树,所以声明看起来像这样(它工作正常):

$("#jstree").jstree({ "xml_data": { // "data": $xmlFlatData, "ajax": { type: "POST", async: true, "url": loc + "/AjaxReturnTree", data: '{"longnames":"'+flag+'"}', contentType: "application/json; charset=utf-8", dataType: "json", cache: false, success: function (msg) { var mm = eval('(' + msg + ')'); ; // create object to get rid of json return mm.d; }, error: function () { // TODO process error } }, "xsl": "flat", "override_ui": "true", "real_checkboxes": "true" }, "plugins": ["xml_data", "themes", "checkbox", "ui"] }); 

现在我需要重新加载树并将“longnames”部分更改为另一个标志(它是0/1),但保持其他选项不变。

我想尝试使用这样的东西:

  $("#jstree").jstree({ "xml_data": { "ajax": { cache: false, data: '{"longnames":"' + flag + '"}' } } }); $("#jstree").jstree("refresh"); 

但它不会触发新的AJAX请求,只会刷新屏幕上的树而不重新加载。

如何从服务器重新加载树?

另外,我如何确定我更改旧的ajax设置的属性,而不是创建一个全新的树对象?

          flag = 0;       function getData(){          return'{“longnames”:“'+ flag +'”}';      }       $( “#jstree”)。jstree({          “xml_data”:{              “ajax”:{                  cache:false,                  data:getData()              }          }      });       $( “#jstree”)jstree( “刷新”)。  //刷新标志= 0       flag = 1;      $( “#jstree”)jstree( “刷新”)。  //刷新标志= 1 

    应删除“data:getData”的括号或者,jQuery将执行getData()并仅保留第一次执行的结果。 如果没有括号,jQuery会将“data”的值作为函数进行交换,并且每次都运行它。 顺便说一句,要注意“cache:false”,jQuery会发布“_”cacheBurster。

    需要了解更多jQuery教程分享更改jstree中的AJAX选项并从服务器重新加载树,都可以关注jQuery技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是jQuery教程分享更改jstree中的AJAX选项并从服务器重新加载树相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/981916.html

      (0)
      上一篇 2021年12月13日
      下一篇 2021年12月13日

      精彩推荐