2015-10-07 2 views
0

В моем приложении у меня есть функция, которая посещает мое все дерево, а затем выполняет некоторую зависящую от ajax обработку для каждого узла определенного типа (а именно, он добавляет к нему некоторых детей). Весь процесс занимает некоторое время для запуска, но поскольку он асинхронен, браузер не замерзает, и пользователь может продолжать взаимодействовать с узлами, которые получили ответ ajax, прежде чем все ответы будут выполнены.Можно ли конкретно отобразить значок узла Fancytree?

Для этого эффекта я настраиваемый iconClass так:

iconClass: function (event, data) { 
    switch (data.node.data.type) { 
     case "folder": 
      return "fa fa-folder"; 
      break; 
     case "normal": 
      return "fa fa-folder-o"; 
      break; 
     case "loading": 
      return "fa fa-spinner fa-spin fa-pulse"; 
      break; 
     default: 
      return "fa fa-question-circle"; 
    } 
} 

С этими значками сконфигурированных, я поставил свою node.data.type на «загрузку» до начала вызова Ajax для этого узла, а затем в ajax.success я вновь -set my node.data.type вернуться к «нормальному». Это само по себе не изменяет значок узла, если он отображается на экране.

Я знаю, что могу добиться того, чего я хочу, просто вызывая node.render() или node.renderTitle(), однако, так как я использую ext-tree, это также вызывает renderColumns() что-то я не хочу в этой точке (renderColumns создает поля ввода, и это заставляет меня проблемы с моей JQuery-плагин валидации)

ответ

0

вы можете манипулировать HTML узла fancytree 2-мя способами:.

  • Если HTML находится в «.fancytree титула» -span, вы можете манипулировать его HTML, изменив data.node.title. Остерегайтесь, однако, это HTML-строка, не объект DOM или JQuery.
  • Если вы хотите изменить другой HTML-код, вы можете манипулировать data.node.li. Это элемент DOM. Вы можете легко манипулировать ею с JQuery с помощью $(node.data.li)

удачи

Смежные вопросы