2016-09-22 12 views
1

<select>要素が<options>のリストを表示/非表示にしたときに、どのイベントが発生した場合にトリガされますか?JavaScriptの選択オプションが表示されていますか?

例:あなたはこの選択ボックスの中に、マウスでクリックすると

<select> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
</select> 

は、ブラウザは、オプションのリストが表示されます。

ただし、選択ボックスにタブすると、ブラウザにオプションのリストが表示されません。

select要素内でmouseupイベントをチェックする唯一の方法はありますか、それとも明白なものがありませんか?

$(document.body).on('mouseup', 'select', function(){    
    console.log('Either shown or hidden the options...but which?') 
}); 

ありがとうございます。

P.S.私は<select>要素にクラスを追加しようとしていますが、<options>が表示されているので、ブラウザに「オプションのポップオーバー」が表示されていないときとは異なるカスタムキャレットスタイルが表示されます。

+0

「jquery」 – mmativ

+0

の「on change」を使用してください。クリックしてください。クラスを追加して、それを削除しますか? –

+0

マウスイベントハンドラでは、キーボードを使用して選択要素にタブイングし、alt-downまたはalt-upを押してリストをドロップおよびリトラクトすることができるため、十分ではありません。 – nnnnnn

答えて

0

これは、select要素にフォーカスがあることを意味します。したがって、このシナリオではJavaScriptは必要ありません。あなたはcssを使用してこれを満たすことができます。

select:focus { 
    color:red; 
} 

しかし、あなたは、それはこのようなものになりますjqueryのを使用したいなかった場合:あなた=は「選択」とあなたはこのような何かを行うことができ、IDを選択する与える、純粋なJavaScriptの使用

$("select").focus(function(){ 
    console.log(" h1 "); 
}) 

を:

+0

質問は、リストがいつドロップするか(または再び非表示になる)イベントがあったかどうかを尋ねてきましたが、実際には何を達成しようとしていますか?フォーカスを受け取っているselect要素と同じではありません。 – nnnnnn

+0

@nnnnnnはい、あなたは正しいです。この質問に対する正解ではありません。オプションを表示するselect要素に関連付けられたjavascriptイベントはありません。 – partypete25

+0

@ user300838あなたが本当に希望の効果を達成するために、select要素にクラスを追加したいときは、おそらくhttp://gregfranko.com/jquery.selectBoxItのようなjqueryプラグインを使う必要があります。 js/index.html、https://silviomoreto.github.io/bootstrap-select/またはhttps://selectize.github.io/selectize.js/ – partypete25

関連する問題