如何区分fancytree中的扩展与点击?

时间:2014-04-23 11:34:19

标签: javascript coffeescript fancytree

>[\] 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:是的         cache:true

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

filter:
    mode: 'hide'

现在我有点击'>'的问题展示并隐藏下面的孩子。

如何正确检查:

event.originalEvent.target is 'fancytree-expander'

这不起作用。

1 个答案:

答案 0 :(得分:2)

这解决了我的问题:

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