JSTree:如何将表单项(如<select>)放入树节点?</select>

时间:2012-12-16 19:06:55

标签: javascript jstree

我的JSTree节点属于html类型:"html_titles : true"

我想在这些节点中添加表单项(例如<select><option> ...)。

我可以使用"rename_node"来实现,但是当可编辑项目出现时,用户无法修改任何内容:单击<select>项目将不允许用户修改其内容...

似乎与drag'n drop插件存在冲突:当此插件未激活时,我们可以使用表单项而不会出现任何问题...有关解决方案的任何想法吗?

1 个答案:

答案 0 :(得分:1)

我找到了一种方法来禁用单个节点上的拖放,具体取决于节点的动态属性类(我称之为“inEdition”)

但我必须更改JSTree代码(约2400行):

.delegate("a", "mousedown.jstree", $.proxy(function (e) { 
    if(e.which === 1) {
        /*this.start_drag(e.currentTarget, e);
        return false;*/
        o = this._get_node(e.currentTarget);
        if(this.data.ui && this.is_selected(o)) { o = this._get_node(null, true); }
        if (!o.hasClass("inEdition")) {
            this.start_drag(e.currentTarget, e);
            return false;
        }
    }
}, this))

我还必须禁用关于2200行的3行:

/*e.currentTarget.unselectable = "on";
e.currentTarget.onselectstart = function() { return false; };
if(e.currentTarget.style) { e.currentTarget.style.MozUserSelect = "none";}*/

希望它可以帮助某人