2014-04-23 35 views
1
>[\] Group 
    >[\] Subgroup 
     [] Item 
     [] Item 
     ... 
    ... 
... 

我有樹就像演示。 [\]意味着它是不是可選,而[]代表複選框,可以選擇。如何區分擴展和點擊花萼樹?

我想這上集團或點擊意味着:

  • 的點擊組/亞組以下的所有兒童的擴大
  • 選擇(或當它是第二次去除選擇)下的所有項目

我想就>是點擊僅意味着:

  • 的點擊組/亞組以下的所有兒童的擴大

我的代碼現在看起來是這樣的:

createNode: (event, data) -> 
    kind = data.node.data.k 
    pk = data.node.data.i 

    if objects?[pk] 
     data.node.setSelected() 

    if kind isnt 'c' 
     $(data.node.li).find('span.fancytree-checkbox').remove() 

beforeSelect: (event, data) -> 
    if data.node.data.k isnt 'c' 
     return false 

    if data.node.isSelected() and data.node.parent.isSelected() 
     return false 
click: (event, data) -> 
    data.node.visit (child) -> 
     console.log data.node.data.k 
     child.makeVisible() 
     if child.data.k is 'c' 
      child.setSelected(data.node.selected) 

和:

AJAX: ifModified:真 緩存: true

checkbox: true 
selectMode: 2 
debugLevel: 0 
generateIds: false 

filter: 
    mode: 'hide' 

現在我有問題,點擊'>'顯示並隱藏下面的孩子。

如何正確進行檢查:

event.originalEvent.target is 'fancytree-expander' 

這是行不通的。

回答

2

這解決了我的問題:

 tt = $.ui.fancytree.getEventTargetType(event.originalEvent) 
     if tt isnt 'expander'