【问题标题】:Fancytree can't use ext-edit with ext-dnd?Fancytree 不能将 ext-edit 与 ext-dnd 一起使用?
【发布时间】:2014-08-25 18:57:52
【问题描述】:

jQuery UI 1.11 + Fancytree 2.3.0

$("#tree").fancytree({
  extensions: ["edit", "dnd"],
  edit{ ... },
  dnd{ ... },
  ...
});

[DnD]

  • 已经生效。

[编辑]

  • [F2] - 忽略。
  • [Shift+单击] - 有效。

使用 dnd 扩展时无法按 F2 键。为什么要破坏“F2”?

【问题讨论】:

    标签: jquery-ui jquery-draggable fancytree


    【解决方案1】:

    [jQuery UI 1.11 - 可拖动]

    var mouse = $.widget("ui.mouse", {
      ...
      _mouseDown: function(event) {
        ...
        this.document
          .bind( "mousemove." + this.widgetName, this._mouseMoveDelegate )
          .bind( "mouseup." + this.widgetName, this._mouseUpDelegate );
    
        event.preventDefault();
    
        mouseHandled = true;
        return true;
    },
    

    Fancytree(ul.fancytree-container) 在阻塞 event.preventDefault() 时缺少焦点。

    如果你能固执地专注。试试这个代码。

    $("#tree").fancytree({
      extensions: ["edit", "dnd"],
      edit{ ... },  
      dnd{ ... },
      click: function(event, data){
        data.tree.$container.focus();
      },
      ...
    });
    

    【讨论】:

    • 否定的。代码注释说“可拖动取消鼠标按下”,但对我没有任何帮助。 :S
    • 可能 dnd.focusOnClick 有其他问题。我提出问题:github.com/mar10/fancytree/issues/300
    • 这个解决方案对我有用。如果您愿意,您可以使用 jQuery UI 1.10.4。它也有效,但我宁愿使用更新版本的 jQuery UI。
    猜你喜欢
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    相关资源
    最近更新 更多