.blur() イベントを追跡して編集できないようにする編集可能な要素があります。また、ユーザーが編集を終了したことを示す「OK」ボタンとして機能する別の要素もあります。HTML は次のとおりです (#input は編集可能な要素、#ok は OK ボタン):
<div id='container'>
<span id='input' contenteditable='true'></span>
<a href="#" id='ok'></a>
</div>
そしてCSS:
#container {
border: 1px solid black;
width:100px;
position:relative;
}
#input {
display: inline-block;
width: 80px;
}
#ok {
display: inline-block;
width: 20px;
height: 20px;
background: green;
cursor:pointer;
position: absolute;
right: 0;
}
2 つのイベントがバインドされています。
$('#ok').click(function(){alert('it is clicked')});
$('#input').blur(function(){alert('blur is detected')});
しかし、[OK] ボタンをクリックするたびに .blur() イベントがトリガーされますが、これは私が望む動作ではありません。さらに、.blur() イベントについて通知された後、これはイベント スタックの次のイベントであるため、発生すると思われる .click() イベントについて通知されません。ボタンをクリックすると .blur() イベントが発生しないようにすることはできますか? ケースを表すjsFiddleを次に示します。