У меня есть база данных товаров с несколькими категориями товаров.У каждой категории есть несколько подкатегорий, у которых есть подкатегории, у которых есть ... Ну, довольно глубокие уровни.Дерево слишком велико для одновременной загрузки, поэтому мне нужно строить его динамически, так как пользователи выбирают определенные категории продуктов.Вот снимок дерева продуктов.Изначально загружается только первый уровень.Второй уровень (Cat. 1.1 и Cat. 1.2) добавляется, когда пользователь нажимает на cat.1:
<ul id="navigation">
<li id="625212">Product cat. 1
<ul>
<li id="625213">Product cat. 1.1
<ul></ul>
</li>
<li id="625109">Product cat. 1.2
<ul></ul>
</li>
</ul>
</li>
<li id="624990">Product cat. 2
<ul></ul>
</li>
</ul>
Я намерен расширить дерево, когда пользователи нажимают на определенные категории продуктов.Я могу получить список подкатегорий по URL-адресу, который принимает идентификатор родительской категории продукта в качестве входных данных и выводит HTML в формате, необходимом для дерева.Я не могу использовать PHP и должен заставить это работать с событием .click ().Вот код, который у меня есть:
$(document).ready(function(){
function doSomethingWithData(htmldata, id) {
var branches = $(htmldata).appendTo("#navigation #"+id+" ul");
$("#navigation").treeview({ add: branches });
}
$("#navigation").treeview({
collapsed: true,
unique: true,
persist: "location"
});
$("#navigation li[id]").click(function() {
var id=$(this).attr("id");
if ($("#"+$(this).attr("id")+" ul li").size()==0) {
$.get('someurl?id='+$(this).attr("id"),
function(data) { doSomethingWithData(data, id); } )
}
});
});
Проблема, с которой я столкнулся, связана с событием click.При нажатии на кошку 1.1.чтобы продлить его еще на один уровень, он по-прежнему возвращает идентификатор категории продукта верхнего уровня.
Как я могу изменить события щелчка, чтобы он возвращал идентификатор нажатого <LI>
вместо верхнего?
Если категория продукта не имеет подкатегорий, как я могу удалить <UL></UL>
и, таким образом, указать, что дерево не может быть расширено дальше?