我正在尝试让 JsTree 工作以在我的 MVC 应用程序中获取文件夹视图。如果我在页面视图中使用现有的静态 html ul 列表,一切正常。但是我需要动态获取 ul 列表,所以我正在尝试对文档中描述的 JsTree 的 ajax 调用:
<script type="text/javascript">
var url;
$(document).ready(function () {
$("a").click(function () {
url = "?url=" + $(this).attr("rel");
alert(encodeURI(url));
});
});
$(function () {
$("#demo2").jstree({
"html_data": {
"ajax": {
"url": "/Home/Directories/"
}
},
"ui": {
"select_limit": 2,
"select_multiple_modifier": "alt",
"selected_parent_close": "select_parent",
"initially_select": ["phtml_2"]
},
"themes": {
"theme": "classic",
"dots": true,
"icons": true
},
"plugins": ["themes", "html_data", "ui"]
});
});
</script>
如您所见,我试图在此列表的所有“a”元素上设置一个点击事件。同样,如果 ul 列表直接写在 div id="demo2" 中,这也可以正常工作。但是当我尝试动态获取列表时,这些动态创建的元素上的点击事件不起作用。没发生什么事。我检查了结果 html,据我所知,一切都很好。好像没有设置click事件,因为设置click事件时动态a元素不存在,可能是这样吗?如果是这样,我该怎么办?我需要能够在动态创建的元素上触发事件......我查看了 JsTree 文档,但它相当薄,基本上只是列出事件等,没有展示如何使用它们。我想我是否可以有一个回调,以便仅在创建树之后才设置 click 事件以使其工作,但我不知道如何为此编写回调。(我对 jquery 非常陌生,并且对这个脚本非常陌生,但我需要它,所以我正在努力学习)。