Contenteditable="true" 无法正常使用 jQuery UI 选项卡

Contenteditable="true" not working properly with jQuery UI Tabs

由于某些原因,当我在 jQuery UI 选项卡上有 contenteditable 时,我无法在字母之间添加 space。您可以添加文本和删除,但我不能添加 white-space。看这里http://codepen.io/anon/pen/ByEEQe

单击选项卡中的文本并尝试添加 space。

<a href='#tab-2'><span contenteditable="true">THIS ALSO IS TAB</span></a>

这可能是一种解决方法,但添加 (contenteditable = true) w/jQuery 可以解决问题。

$("#sidebar-canvas-content").attr('contenteditable','true');

jQuery UI Tabs listens to keydown event:

_tabKeydown: function( event ) {
    // ...
    case $.ui.keyCode.SPACE:
        // Activate only, no collapsing
        event.preventDefault();
    // ...

如您所见,如果按下 space 键,它会调用 event 对象的 preventDefault 方法。您可以监听 keydown 事件并停止传播该事件:

$("#sidebar-canvas-content")
   .tabs()
   .find('.sidebar-tab span[contenteditable]').on('keydown', function(event) {
       event.stopPropagation();    
   });