小编CMT*_*MTV的帖子

blur event.relatedTarget返回null

我有一个<input type="text">字段,当这个字段失去焦点时我需要清除它(这意味着用户点击了页面上的某个地方).但有一个例外.当用户单击特定元素时,不应清除输入文本字段.

我试图用来event.relatedTarget检测用户是否点击了某个地方而不是我的具体点击<div>.

但是正如您在下面的代码段中看到的那样,它根本不起作用.event.relatedTarget总是回来null!

function lose_focus(event) {
  if(event.relatedTarget === null) {
    document.getElementById('text-field').value = '';
  }
}
Run Code Online (Sandbox Code Playgroud)
.special {
  width: 200px;
  height: 100px;
  background: #ccc;
  border: 1px solid #000;
  margin: 25px 0;
  padding: 15px;
}
.special:hover {
  cursor: pointer;
}
Run Code Online (Sandbox Code Playgroud)
<input id="text-field" type="text" onblur="lose_focus(event)" placeholder="Type something...">

<div class="special">Clicking here should not cause clearing!</div>
Run Code Online (Sandbox Code Playgroud)

javascript events onblur lost-focus focusout

33
推荐指数
1
解决办法
8352
查看次数

TinyMCE 插入跨度后移动插入符

我正在创建一个带有自定义按钮的 TinyMCE 插件,该按钮插入<span>test</span>当前插入符位置。此外,当插入符号位于先前插入的文本中时,再次单击此按钮将删除当前文本<span>test</span>并将其替换为新插入的文本<span>test</span>

tinymce.PluginManager.add('test_plugin', function(editor) {
   editor.addButton('test-button', {
      text: 'Insert span',
      onclick: function() {
         var current_node = editor.selection.getNode();

         if(current_node.tagName === 'SPAN') {
            current_node.remove();
         }

         editor.insertContent('<span>test</span>');
      }
   });
});
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但是插入插入符后<span>test</span>卡在这个跨度节点中,我无法将其移出这个跨度。

&#32;在末尾添加(空格)( <span>test</span>&#32;)解决了插入符号卡住的问题,但每次重新插入都会添加多余的空格。

如何解决插入符号卡住问题?

或者

&#32;重新插入时如何删除多余的?

javascript jquery tinymce caret

6
推荐指数
1
解决办法
2041
查看次数

标签 统计

javascript ×2

caret ×1

events ×1

focusout ×1

jquery ×1

lost-focus ×1

onblur ×1

tinymce ×1