我有一个包含多个产品类别的产品数据库。每个类别都有一些子类别,其中有子子类别,这些子类别...呃,相当深一些。该树太大而无法立即加载,因此我需要在用户选择特定产品类别时动态构建它。这是产品树的快照。最初,只有第一级被加载。当用户点击猫时添加第二级(Cat.1.1和Cat.1.2)。 1:如何获取动态构建的JQuery TreeView中的clicked元素?
<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中获取子类别的列表,它将父类产品类别ID作为输入,并以treeview所需的格式输出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); })
}
});
});
我遇到的问题是与点击事件。当点击猫1.1。将其扩展到更深一级,它仍会返回顶级产品类别的ID。
如何更改点击事件,以便它将返回点击的<LI>
的ID而不是顶级ID?
如果产品类别没有任何子类别,我该如何删除<UL></UL>
并因此指出该树无法进一步扩展?
$(“#导航UL>礼”),单击作品为产品树。我预加载(除了顶层)。它不适用于我动态添加的任何子类别。 不知道它是否重要,但下面是我动态添加的htmldata示例:
刚刚更新我的帖子与正确的点击功能。 – ryanulit 2010-04-09 18:52:36
谢谢!这很好用! – Alexander 2010-04-11 15:14:37