Javascript onblur/onfocus

Javascript onblur/onfocus,javascript,Javascript,我在这两个事件中遇到了一些问题,它们工作正常,但我遇到了一个问题: 我在一个div里面有一个div。当内部div对焦时,我希望在外部div后面附加一组样式按钮。但是当我尝试单击按钮时,它会使内部div对焦,并使按钮消失。我希望他们离开时,重点是失去了,但我不希望失去重点时,我按下一个按钮。抱歉,如果这有点让人困惑,下面是一些代码和其中的一部分: function addButtons() { var node = document.createElement('div'); var ob

我在这两个事件中遇到了一些问题,它们工作正常,但我遇到了一个问题: 我在一个div里面有一个div。当内部div对焦时,我希望在外部div后面附加一组样式按钮。但是当我尝试单击按钮时,它会使内部div对焦,并使按钮消失。我希望他们离开时,重点是失去了,但我不希望失去重点时,我按下一个按钮。抱歉,如果这有点让人困惑,下面是一些代码和其中的一部分:

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]);
}
函数addButtons(){
var节点=document.createElement('div');
var obj=document.getElementById('container');
node.setAttribute('id','buttons');
node.innerHTML='';
子对象(节点);
}
功能移除按钮(id){
var obj=document.getElementById('container');
对象removeChild(对象childNodes[3]);
}

如果删除removeButtons()函数,它可以正常工作,但会创建多个按钮

我可以试着把事情弄清楚,只要问问


谢谢

您可以添加一个
返回falsemousedown
事件上的code>语句,例如:

node.getElementsByTagName('input')[0].onmousedown = function(e) {
    return false;
};


也许这是一个解决方案,但并不完美。

模糊
单击
之前触发,因此按钮消失,不会注册单击。需要使用不同的事件来移除按钮,比如DIV的mouseleave之类的
document.onclick = function(e){
    console.log(e.target);
    if(e.target.id != 'buttons' && e.target.parentNode.id != 'buttons' && e.target.id != 'textarea'){
        removeButtons();
    }
}​