#javascript #jquery
#javascript #jquery
Вопрос:
В настоящее время я использую плагин dynaTree jQuery для визуализации дерева.
<div id="tree" style="height:100px;">
<ul class="expanded">
<li class="expanded" id="shtml_1" >
<a class="ajaxify" href="jsTree.html" >Root node 1</a>
<ul>
<li id="shtml_2">
<a href="#">Child node 1</a>
<ul>
<li id="a"><a href="#">Child node 1-1</a></li>
<li id="x"><a href="b">Child node 1-2</a></li>
</ul>
</li>
<li id="c"><a href="#">Child node 2</a></li>
</ul>
</li>
<li id="shtml_4">
<a href="#">Root node 2</a>
</li>
</ul>
Javascript —
$('.ajaxify').ajaxify({
target: '#container'
});
$(function(){
$("#tree").dynatree({
title: "Sample Theming",
// Image folder used for data.icon attribute.
imagePath: "skin-custom/",
onSelect: function(node) {
alert ("You selected " node);
}
});
});
Теперь я хочу
- Используйте плагин jQuery Ajaxify (http://max.jsrhost.com/ajaxify/demo.php ) чтобы при нажатии пользователем на любой узел выполнялся вызов ajax и результаты загружались в div.
Или
- Свяжите теги привязки с помощью jquery, чтобы я мог выполнять ajax-запросы onclick.
Теперь всякий раз, когда я использую dynaTree, он переопределяет поведение по умолчанию и не позволяет щелкнуть по тегу привязки. Есть мысли о том, как это можно сделать?
Ответ №1:
Dynatree по умолчанию удалит <a>
теги, поэтому, возможно, проще реализовать обработчик OnActivate:
onActivate: function(node) {
if( node.data.href ){
// use href and target attributes:
window.location.href = node.data.href;
// window.open(node.data.href, node.data.target);
// $("#div").load(node.data.href);
}
}
Начиная с версии 1.1.2, Dynatree будет использовать атрибуты href
и target
непосредственно из <a>
тега:
<li id="x"><a href="b">Child node 1-2</a></li>
В старых версиях вы должны устанавливать href следующим образом:
<li id="x" data="href: 'b'"><a href="b">Child node 1-2</a></li>
Комментарии:
1. Спасибо. Есть мысли, как мы можем интегрировать его с плагином, подобным Ajaxify?
2. Я никогда не использовал Ajaxify, но я заметил демонстрацию на их странице (‘Взаимодействие с другими плагинами’ — ‘Flexigrid’), которая может указывать на подход.
3. К сожалению, это не работает с dynaTree. Поэтому мне пришлось вообще отказаться от идеи использования Ajaxify и использовать различные вызовы ajax в методе OnActivate dynaTree
4. 1 за комментарий к версии (этот href из тега a не поддерживается в 1.1.1, чего нет в документации).