2011-10-12 52 views
2

我正在使用JSTree和複選框插件,但我無法設法選擇選定的節點(選中),我在JSTree文檔中閱讀了有關事件.get_checked的內容,但不知道如何實現它,把它,如果在函數中的數據加載或不,我也不明白,當事件的作品,即我不知道是否事件每次執行時檢查節點或有一個數組被填充每當一個節點被擊中時...請幫助我...我迷失了,我不知道該怎麼做。JsTree .get_checked函數不起作用...幫助....?

這裏是我的JScript代碼,數據負載是好的,但get_checked功能不起作用......

$(function() { 
    $("#demo2") 
     .jstree({ 
      plugins: ["themes", "json_data", "checkbox", "crrm"], 
        "json_data": { 
        "ajax": { 
         "type": "POST", 
         "url": "/Ubicacion/Arbol/", 
         "data": function (n) { return { id: n.attr ? n.attr("id") : 0} } 
       } 
      } 

      }) 

     .bind("check_node.jstree", function (event, data) { 
      alert($.jstree._focused().get_checked().attr('id')); 
     }) 

    }); 

搜索各地的互聯網我發現了一個「中間」的解決方案:

$(function() { 
     $("#demo2") 
     .jstree({ 

      plugins: ["themes", "json_data", "checkbox", "crrm"], 
      "json_data": { 
       "ajax": { 
        "type": "POST", 
        "url": "/Ubicacion/GetTreeview/", 
        "data": function (n) { return { id: n.attr ? n.attr("id") : 0} } 
       } 
      } 
     }).bind('check_node.jstree', function (e, data) { 
      alert("Nodo elegido " + data.rslt.obj.attr("id")); 
     }); 
    }); 

我添加這些行:

.bind('check_node.jstree', function (e, data) { 
       alert("Nodo elegido " + data.rslt.obj.attr("id")); 
      }); 

,現在我只有父節點,孩子沒有按不會被迫...任何想法.. ??

拜託...幫幫我... !!

回答

3

這是我如何調用/獲取所有選中的節點

checked = $("#tree").jstree("get_checked",null,true) ;

很好地工作對我來說。在我看來,'麻煩'是什麼時候以及如何打電話.get_checked

你能告訴我們你想實現什麼嗎?最好的是,如果你能在jsfiddle.net

更新

工作樣本是jsfiddle

1提供樣品)你如何綁定行動勾選複選框

$("#jstree").bind('check_node.jstree', function(e, data) { 
    $("#list").append('<BR>clicked and ' + node_is_check(data)); 
}); 

2)如何檢查複選框是否被選中,其中object =上面的數據

object.inst.is_checked(object.rslt.obj 
+0

好吧,我需要將樹的選中節點發送給控制器,我使用收集到的ID來執行數據庫查詢。我現在沒有與我的代碼,我稍後會發布它... – verofairy

+0

您希望何時/何時觸發代碼? – Radek

+0

好,如果它的posible我需要被觸發每次複選框被選中....或者我可以使用一個按鈕來觸發... – verofairy