0

2 つのイベントで問題が発生しています。正常に動作しますが、問題が発生しました。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]);
}

http://jsfiddle.net/bnjGE/2/

removeButtons() 関数を削除すると正常に動作しますが、複数のボタンが作成されます。

私は物事を解決しようとすることができます.

ありがとうございました

4

2 に答える 2

0

return false;ボタンのイベントにステートメントを追加できmousedownます。f.ex:

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

http://jsfiddle.net/bnjGE/8/

于 2012-12-29T03:26:20.757 に答える
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/ 多分これは解決策ですが、完璧ではありません。

于 2012-12-29T03:28:15.077 に答える