2013-02-13 72 views
3

我想知道如何在單擊節點的複選框後訪問jsTree節點屬性。點擊複選框後如何訪問jsTree節點屬性?

我使用$("#jstree").bind('check_node.jstree', function(e, data) {來觸發我的代碼後點擊複選框。

現在我想訪問節點的屬性。但我不知道如何使用data對象,所以我可以獲取屬性。所以,讓我們說在我的jsfiddle我想顯示的屬性值與文字「點擊和檢查」

請你解釋如何&爲什麼?我迷失瞭如何引用jsTree/jQuery對象。

jsfiddle working sample

====更新

在jsTree數據定義節點的屬性可以被定義。我想以編程方式檢查屬性,然後在屬性上激發不同的代碼庫。在我的情況下,「日誌」屬性。

data = [ 
    { 
     "data": "Basics", 
     "attr":{"log":"shared"}, 
    }, 
    { 
     "data": "All", 
     "attr":{"log":"bdrs"}, 
    } 
] 
+0

你的意思是什麼與節點屬性,也許你可以檢查數據對象with console.log – juanpastas 2013-02-15 02:05:43

+0

@juanpastas:我添加了一個更新...因此,讓我們說在我的jsfiddle中,我想顯示屬性的值以及文本「clicked and ch ecked「節點的複選框被點擊。 – Radek 2013-02-15 04:02:56

回答

4

你可能只是做:

$("#jstree").bind('check_node.jstree', function(e, data) { 
    $("#list").append('<BR>clicked and ' + node_is_check(data)); 
    var node = data.rslt.obj; 
    console.log(node.attr("log")); //shows bdrs when All is checked 
}); 

更新小提琴:jsFiddle Demo

你的意思是這樣

+0

這正是我需要的。你能解釋一下嗎?什麼是rstl.obj。爲什麼我必須使用它?我什麼時候使用它?謝謝。 – Radek 2013-02-15 04:18:44

+0

@Radek'data.rslt.obj'是被點擊的jQuery擴展節點,因此您可以使用此節點獲取所需的數據,請閱讀文檔以獲取更多詳細信息。 – 2013-02-15 04:25:14

+0

doc中找到的唯一參考是「 rslt「:/ *傳遞給事件* /,'的任何數據。你能告訴我爲什麼我需要使用rstl.obj嗎?不僅rstl? – Radek 2013-02-15 04:31:22