2013-08-23 21 views

回答

2

一旦你有一個節點,你可以測試node.data.isFolder

在Dynatree事件處理程序,這是簡單的:

例如

onClick: function(node, event) { 
    if(node.getEventTargetType(event) === "title" && node.data.isFolder){ 
     [...] // Handle the click event 
     return false;// Prevent default processing 
    } 
} 

從一個自定義的處理器中,你可能首先要找到目標元素節點:

var node = $.ui.dynatree.getNode(el) 
+0

謝謝。那就是訣竅。我想要做的是獲得自定義'node.data.type'通過ajax加載菜單。我正在使用[joewalnes's](https://github.com/joewalnes/jquery-simple-context-menu)替代上下文菜單,並對它進行了調整,因此它與瀏覽器的反應類似。目前我正在使用'mouseenter'選擇器來激活節點,因此可以輕鬆檢索到該類型。如果你知道更好的方式,請讓我知道:)。 –

+0

另外,我假設你是dynatree的作者。如果任何人遇到懸浮選擇器觸發的問題,解決方法是使用委託'$(「#tree」)。委託(「a」,「mouseenter」// ...'。這就是我如何激活當鼠標懸停在它上面時,看起來動態生成的元素沒有被「on」('或者我做錯事。 –

+1

個人認爲激活懸停節點是不常見的(你不會例如,在windows文件瀏覽器的樹視圖中,我會建議在打開菜單時使用'$ .ui.dynatree.getNode(event)',你也可以調用node.activate()然後 – mar10

相關問題