我是jQuery和jsTree的新手,我试图完成两件事。 1)我希望节点在单击时转到指定的URL。默认情况下,li
的{{1}}标记位于a
。 2)我想在某些节点上添加一个onClick事件。我已经搜索过,而且我似乎无法就如何做到这一点得到明确的答案。我尝试了以下方法:
href=#
我的数据填充,我使用asp转发器如下:
Treeview.aspx
$(function () {
$('#leftNav').jstree({
"core": {
"themes": {
'name': 'default',
"variant": "small",
"icons": false
}
},
"checkbox": {
"keep_selected_style": false
},
});
});
$('#leftNav').on("changed.jstree", function (e, data) {
console.log(data.selected);
var i, j;
for (i = 0, j = data.selected.length; i < j; i++) {
var nodeId = data.selected[i]
nodeId = "#" + nodeId
// 1) Code to change node url
$(nodeId).attr("href", "http://www.google.com/")
// 2) Code to add onClick to node
$(nodeId).click("myFunction")
}
});
Treeview.aspx.vb
<div id="leftNav">
<asp:Repeater ID="rptr" runat="server" EnableViewState="False" OnItemDataBound="loadTreeView">
<HeaderTemplate>
<ul>
<li class="jstree-open">
My Workplace
<ul>
</HeaderTemplate>
<ItemTemplate>
<li id="listItem" runat="server"></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</li>
</ul>
</FooterTemplate>
</asp:Repeater>
</div>
答案 0 :(得分:2)
答案 1 :(得分:2)
如果您只需1)在您的网址上打开一个新窗口,2)在选择更改时调用一些功能,您可以这样做:
$('#leftNav').on("changed.jstree", function (e, data) {
// open a new window with your url
window.open("http://www.google.com/");
// call a function
myFunction();
})
然而,在这个小提琴中,我保留了对每个新选择更改的所有选定节点的迭代:JS Fiddle