focus
代わりにイベントを使用してみてくださいselect
。そうすれば、キーボードを使用してターゲットに設定されている場合でも、イベントが入力されます。
$('select').on('focus', function() {
var $this = $(this);
if ($this.children().length == 1) {
$this.append('<option value="1">1</option><option value="2">2</option>');
}
});
簡単なデモを表示します。
アップデート
これは、unbindを使用してイベントハンドラーを1回だけ起動する新しいバージョンです。このようにして、要素を追加せずにを使用して、前のソリューションで必要とされた条件の結果を変更できます。alert
option
$('select').on('focus', function() {
var $this = $(this);
// run your alert here if it´s necessary
alert('Focused for the first time :)');
// add the new option elements
$this.append('<option value="1">1</option><option value="2">2</option>');
// unbind the event to prevent it from being triggered again
$this.unbind('focus');
});
それがあなたが探しているものであることを願っています。