gpt4 book ai didi

javascript - JSTREE 在第二次加载时失败

转载 作者:行者123 更新时间:2023-11-29 16:03:27 26 4
gpt4 key购买 nike

我正在构建一个 MVC 5 Web 应用程序,其中我在 View 上有一个 JSTREE 实例。树加载正常,但是当我更改了数据库中的 som 数据,并且想要重新加载树时,我收到错误消息:

未捕获的类型错误:$(...).jstree 不是函数

这个错误似乎伴随着我对树所做的任何事情,重新加载,刷新等。

失败的例子:

$("#tree")
.jstree({
"core": {
"data": [{ text : "node", "children" : ["1","2"] }]
}
});

$('#rfr')
.on("click", function (e, data) {
$("#tree").jstree(true).deselect_all();
$("#tree").jstree(true).refresh();
$("#tree").jstree("refresh");
});
@{
ViewBag.Title = "OrgAdmin";
}


<script src="@Url.Content("~/Scripts/jquery-1.10.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jstree.js")" type="text/javascript"></script>

<link rel="stylesheet" type="text/css" href="@Url.Content("~/Scripts/themes/default/style.min.css")">

<div id="tree"></div>
<button id="rfr">refresh</button>

我从一个工作 fiddle 中获取了代码:http://jsfiddle.net/DGAF4/30/这里刷新有效,但是当复制到我的 mvc 应用程序时,它失败了

我希望你能帮助我,让这棵树在我的 mvc 应用程序上刷新。

亲切的Kåre

最佳答案

我在为 'Close All' 和 'Expand All' 添加两个按钮时遇到了类似的问题,并设法通过在 _Layout 中注释掉 jquery 捆绑行来解决。 .cshtml 文件:

@Scripts.Render("~/bundles/jquery")

显然,源代码似乎两次包含 jquery 引用,一次在 _Layout.cshtml 文件中,一次在我的 View 文件中。一旦我删除了 jquery 包,它就可以正常工作。我想我必须在其他 View 中明确添加 jquery 引用。希望有所帮助。

查看代码如下:

@using OrgChart.Models;
@using OrgChart.Controllers;
@model IEnumerable<TreeNode>
@{ ViewBag.Title = "Home Page";}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.3.1/themes/default/style.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.3.1/jstree.min.js"></script>

<script type="text/javascript">
jQuery(function ($) {
var $treeview = $("#treeview");
$treeview.jstree({
"core": { // core options go here
"multiple": false, // no multiselection
"themes": {
"dots": false // no connecting dots between dots
}
},
"state": { "key": "state_demo" },
"plugins": ["themes", "html_data"]
})
//.on('ready.jstree', function () {
// $treeview.jstree('open_all');
//});
});
</script>

<br/>
<input id="btnCloseAll" type="button" value="Collapse All" onclick="$('#treeview').jstree('close_all');"> &nbsp;
<input id="btnExpandAll" type="button" value="Expand All" onclick="$('#treeview').jstree('open_all');">
<br /><br />
<div class="row">
<div id="treeview" class="treeview">
@MvcHtmlString.Create(Html.RenderTree(ViewData.Model, node => node.Name))
</div>
</div>

关于javascript - JSTREE 在第二次加载时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36947774/

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