は:
<input id='text'/> <button id='btn'>Click me</button>
そして、私のボタンを、テキストボックスにフォーカスを送り、どこかでイベントをクリックします:
$(document).ready(function(){
$('#btn').click(function(event){
console.log('btn ');
$('#text').focus();
});
$('#text').keyup(function(event){
console.log('key ');
});
});
...あなたがに入力したキーを使用している場合何らかの形でボタンをクリックすると、フォーカスを受け取っているテキスト要素もEnterキー押しを受け取ります。
https://jsfiddle.net/qup6keLd/
は、Enterキーを押して、ボタンにフォーカスを設定するには、Tabキーを使用します。
は、ここでは、この動作を示すフィドルです。両方のイベントがトリガーされます。スペースを使用してボタンのクリックをトリガーすることはできません。なぜこれが起こっているのですか?(focus()コールを外す以外に)どうしたらいいですか?
:
が更新フィドルを参照してください。あなたはそれが伝播するのを防ぐためにイベントを消費することができますが、私はどのように覚えていません。 – Carcigenicate
@Carcigenicate 'e.stopPropgation()' – Polyov
ここでは、[Javascriptでのイベント](http://stackoverflow.com/questions/4616694/what-is-event-bubbling-and-capturing)を扱う良い答えです。 – Polyov