Я создал древовидную структуру с использованием php/javascript. Я просто не могу понять, как сделать его предварительно скомпенсированным, при загрузке страницы.Как сделать pre-collapsed TreeView с php/javascript
вот код, придумайте идеи.
<?php
$query=mysql_query("SELECT tree_entry_lang.entry_id, tree_entry_lang.lang, tree_entry_lang.name, tree_entry.parent_entry_id FROM tree_entry,tree_entry_lang WHERE tree_entry.entry_id=tree_entry_lang.entry_id AND lang='eng'");
$numrows=mysql_num_rows($query);
if($numrows>0){
echo "<ul >";
while($row=mysql_fetch_assoc($query)){
echo "<li><img src='..\images\expand.gif' class='collapsableTree' > ".$row['name'];
getChildren($row['entry_id']);
}
echo "</ul>";
}
else echo "Empty base";
function getChildren($parent_id){
$query=mysql_query("SELECT tree_entry_lang.entry_id, tree_entry_lang.lang, tree_entry_lang.name, tree_entry.parent_entry_id FROM tree_entry,tree_entry_lang WHERE tree_entry.entry_id=tree_entry_lang.entry_id AND parent_entry_id=".$parent_id);
$numrows=mysql_num_rows($query);
if($numrows>0){
echo "<ul >";
while($row=mysql_fetch_assoc($query)){
echo "<li><img src='..\images\expand.gif' class='collapsableTree' > ".$row['name'];
getChildren($row['entry_id']);
}
echo "</ul>";
echo "</li>";
}
}
А вот JQuery часть:
$('.collapsableTree').click(function() {
$(this).parent().children().toggle();
$(this).toggle();
});
Как я уже говорил, при загрузке страницы, мне нужно все мои узлы должны быть закрыты. Я предполагаю, что какая-то функция JavaScript должна использоваться, но я боюсь, что я не могу ее создать. Любые решения?
Это Allright, но дерево становится бесполезным тогда. Как я могу переопределить этот css-дисплей: none, чтобы показывать детям, когда я нажимаю на родителя – 2013-03-11 22:53:37
начинаю с '$ ('. Node'). Click (function() {$ (this) .children ('. Branch «) .toggle();})'. Есть множество плагинов деревьев, почему вы делаете это с нуля, если не знаете, как переключать детей или использовать css на дереве? – charlietfl
Школьный проект;) – 2013-03-12 09:27:18