我有一個dijit樹,我希望能夠選擇或突出顯示樹節點中的文本,以便它們可以被複制/粘貼。道場有樹的一些例子here.所有這些都表明我的問題。Dijit樹文本本身不可選/ highlightable?
此外,這裏是一個JSFiddle與dijit/tree
來演示這個問題。
如果您加載任何示例,您會注意到不能拖動鼠標以突出顯示樹文本。
我試過改變傳遞給Dojo的HTML,但它看起來像它放在節點中的東西不能被選中,我不知道該怎麼做。看起來Dojo有它自己的CSS導致了這一點。造型似乎混淆,所以我不知道在哪裏尋找改變。
是否有一個特定的CSS文件,我必須重寫?或者還有什麼我可以自己編輯樹節點嗎?
我有一個部分答案,從獲取鉻devtools和檢查一些不可選擇的文本,特別是其事件監聽器。它說在div#tree.dojoDndContainerOver.dijitTree.dijitTreeHover.dijitHover上有一個selectstart監聽器,安裝在dijit中的_dndContainer.js中:https://github.com/dojo/dijit/blob/7fcbe24258dfd117fae87d92aa75a2a2baf00a88/tree/_dndContainer.js #L73評論「//取消文字選擇和文字拖動」。如果我在devtools中刪除它,文本變得可選。不過,不知道如何防止這個處理程序或從程序中卸載它。 –
好的,這是一個解決方法,它適用於我:'tree.dndController.events.splice(4,1)[0] .remove();'。換句話說,從events數組中刪除索引4處的事件偵聽器(您可以看到它是從該索引處插入的,來自上述github上的源代碼),並調用remove()。這使得文本可以選擇。現在希望專家會跳進來告訴我們*正確*的方式來做到這一點。 –
@DonHatch感謝您的回覆,並對延遲迴復感到抱歉。我在我鏈接的JSFiddle中嘗試了您的代碼。它不適合我。你在網上有沒有一個工作例子? –