I'm using jstree in my rails app, and i'm using json data for it, but i have trouble: how i can set for nodes link and href for it, so that i can go on it? Json look's like this:
我在我的rails应用程序中使用jstree,我正在使用json数据,但我遇到了麻烦:我如何设置节点链接和href为它,以便我可以继续它? Json看起来像这样:
var data = [
{
"data":"\u041b\u0435\u0433\u043a\u043e\u0432\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0438",
"href":10001,
"children":[
{
"data":"\u041a\u0443\u0437\u043e\u0432",
"href":10101,
"children":[
{
"data":"\u0422\u043e\u043f\u043b\u0438\u0432\u043d\u044b\u0439 \u0431\u0430\u043a / \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0443\u044e\u0449\u0438\u0435",
"href":10316
},
{
"data":"\u041a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0434\u0438\u0430\u0442\u043e\u0440\u0430",
"href":10317
},
{
"data":"\u041e\u0431\u043b\u0438\u0446\u043e\u0432\u043a\u0430 / \u0437\u0430\u0449\u0438\u0442\u0430 / \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 / \u044d\u043c\u0431\u043b\u0435\u043c\u044b / \u0437\u0430\u0449\u0438\u0442\u0430 \u0440\u0430\u0441\u043f\u044b\u043b.",
"href":10319,
"children":[
{
"data":"\u041e\u0431\u043b\u0438\u0446\u043e\u0432\u043a\u0430/\u0437\u0430\u0449\u0438\u0442\u043d\u0430\u044f \u043d\u0430\u043a\u043b\u0430\u0434\u043a\u0430",
"href":10840
},
{ ................................
And js
$("#tree").jstree({
plugins: ['themes', 'json_data'],
json_data: {data: data},
themes: {
theme: 'apple'
},
});
$('#tree').bind('select_node.jstree', function(e,data) {
window.location.href = "123123"
});
but if i see code, link have href = "#". What's wrong?
但如果我看到代码,链接有href =“#”。怎么了?
1 个解决方案
#1
3
a JSTree Node object does not have href attribute.. if you want to set it you will have to use attr
attribute and include an array of key, value pairs that will identify any of the attributes that JSTree will place in your HTML output.. consider the following example:
JSTree Node对象没有href属性..如果要设置它,则必须使用attr属性并包含一组键值对,这些键将识别JSTree将在HTML输出中放置的任何属性。考虑以下示例:
$(function () {
$("#demo1").jstree({
"json_data" : {
"data" : [
{
"data" : "A node",
"metadata" : { id : 23 },
"children" : [ "Child 1", "A Child 2" ]
},
{
"attr" : { "id" : "li.node.id1" },
"data" : {
"title" : "Long format demo",
"attr" : { "href" : "#" }
}
}
]
},
"plugins" : [ "themes", "json_data", "ui" ]
}).bind("select_node.jstree", function (e, data) { alert(data.rslt.obj.data("id")); });
});
and follow the DOC:
并按照DOC:
JSTree JSON-DATA pulgin DOC
#1
3
a JSTree Node object does not have href attribute.. if you want to set it you will have to use attr
attribute and include an array of key, value pairs that will identify any of the attributes that JSTree will place in your HTML output.. consider the following example:
JSTree Node对象没有href属性..如果要设置它,则必须使用attr属性并包含一组键值对,这些键将识别JSTree将在HTML输出中放置的任何属性。考虑以下示例:
$(function () {
$("#demo1").jstree({
"json_data" : {
"data" : [
{
"data" : "A node",
"metadata" : { id : 23 },
"children" : [ "Child 1", "A Child 2" ]
},
{
"attr" : { "id" : "li.node.id1" },
"data" : {
"title" : "Long format demo",
"attr" : { "href" : "#" }
}
}
]
},
"plugins" : [ "themes", "json_data", "ui" ]
}).bind("select_node.jstree", function (e, data) { alert(data.rslt.obj.data("id")); });
});
and follow the DOC:
并按照DOC:
JSTree JSON-DATA pulgin DOC