2015-01-14 6 views
0

Я использую FancyTree в первый раз, и я хотел бы определить некоторые данные пользовательских узлов, в частности, атрибут с именем «содержание» в данных HTML, используемых для создания дерева:Доступ к FancyTree Узел данных в JavaScript

<li id="xxxx" data-content="true" class="folder"> 

у меня есть инициализации обработчика событий, написанный на JavaScript, и я хочу, чтобы получить доступ к приписывать есть мои пользовательские данные:

init: function(event, data, flag) 
    { 
    var tree = $("#tree").fancytree("getTree"); 
    node = tree.getNodeByKey(key); 
    var data = node.data; 

в онлайн учебник, я увидел, что мой пользовательский атрибут будет доступен в качестве узла. data.content, но я не способный отображать мой пользовательский атрибут в поле alert, чтобы продемонстрировать, что он был определен. Как получить доступ к атрибуту пользовательских данных в моей функции JavaScript?

Sheldon

+0

Привет, если бы вы могли опубликовать свой код, html/js, это было бы замечательно – IndieRok

+0

Не понял, что мой HTML не был виден, поэтому я исправил это, IndieRok. Я также добавил фрагмент обработчика событий. Дайте мне знать, если вам нужно больше узнать о коде ... –

ответ

3

Хорошо, поэтому я, наконец, получил его работу. Вы были близки к получению вашего результата.

Ключевая переменная - это строка, которая представляет атрибут 'id' каждого элемента LI в вашем дереве. Вы получите узел с этим ключом. Как только узел будет получен, вы можете получить свой собственный атрибут данных, связанный с этим узлом. Поскольку наша переменная data является объектом, содержащим ключ/значение, вам нужно вызвать его «ключевое» имя на объекте данных для извлечения значения, например «data.content».

JS

$(function() { 
    // using default options 
    //Caching DOM element 
    var $myTree = $("#tree").fancytree(); 
    // Get the DynaTree object instance 
    var tree = $myTree.fancytree("getTree"); 
    //Set my key 
    var key = "id1"; 
    //Get the node 
    var node = tree.getNodeByKey(key); 
    //Get the custom data attribute associated to that node 
    var data = node.data; 
    //data is an object so, data.content will give you the value of the attribute 
    alert(data.content); 
}); 

JSFIDDLE

Надеется, что это помогает!

+0

OMG; Я весь вечер застрял в этом. Вы рок-звезда, а не только инди-тип :) Спасибо! –

+0

Ха-ха, удовольствие было все мое. Но я должен признать, что их документация не хватает глубины и немного дезорганизована. Мне пришлось искать их старую (и устаревшую) страницу документации, которая была более всеобъемлющей. Я понимаю, почему ты чувствуешь себя немного потерянным. – IndieRok

+0

Да, нет места, где можно найти все функции FT. Но я буду иметь в виду, что более ранняя документация Dynatree лучше. Я собираюсь создать дочерний узел в JavaScript в первый раз, поэтому мне может потребоваться проконсультироваться с этим старым документом, если он лучше прочитан :) –