我有一个<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)
我正在创建一个带有自定义按钮的 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>
卡在这个跨度节点中,我无法将其移出这个跨度。
 
在末尾添加(空格)( <span>test</span> 
)解决了插入符号卡住的问题,但每次重新插入都会添加多余的空格。
如何解决插入符号卡住问题?
或者
 
重新插入时如何删除多余的?