我有一個包含多個產品類別的產品數據庫。每個類別都有一些子類別,其中有子子類別,這些子類別...呃,相當深一些。該樹太大而無法立即加載,因此我需要在用戶選擇特定產品類別時動態構建它。這是產品樹的快照。最初,只有第一級被加載。當用戶點擊貓時添加第二級(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