我在这两个事件上遇到了一些麻烦,它们工作正常但是我遇到了一个问题: 我在div里面有一个div。当内部div处于焦点时,我希望将一组样式按钮附加到外部div。但是,当我尝试单击按钮时,它会取消内部div并使按钮消失。当焦点丢失时我希望它们消失,但是当我按下按钮时我不希望焦点丢失。对不起,如果这有点令人困惑,这里有一些代码和一个jsfiddle的实际操作:
function addButtons() {
var node = document.createElement('div');
var obj = document.getElementById('container');
node.setAttribute('id', 'buttons');
node.innerHTML = '<input type="button" value="B" onClick="document.execCommand(\'bold\',false)" />';
obj.appendChild(node);
}
function removeButtons(id) {
var obj = document.getElementById('container');
obj.removeChild(obj.childNodes[3]);
}
如果删除removeButtons()函数,它可以正常工作,但会创建多个按钮。
我可以尝试清理一下,只要问一下。
三江源
答案 0 :(得分:0)
您可以在按钮上的return false;
事件中添加mousedown
语句,f.ex:
node.getElementsByTagName('input')[0].onmousedown = function(e) {
return false;
};
答案 1 :(得分:0)
document.onclick = function(e){
console.log(e.target);
if(e.target.id != 'buttons' && e.target.parentNode.id != 'buttons' && e.target.id != 'textarea'){
removeButtons();
}
}
http://jsfiddle.net/bnjGE/7/ 也许这是一个解决方案,但并不完美。