2017-02-01 8 views
0

クリックイベントでドロップダウンメニュー全体を非表示にしようとしていますが、少し遅延があり、分割メニューが表示されます。 メニューを一切表示せずに非表示にしたい。メニューを表示せずにクリック時に選択ドロップダウンメニュー全体を非表示にする

のいずれかにそれが可能です:

  • クリックですべてでメニューを表示しない

OR

  • は、クリックでメニューを表示せずに全体の選択ボックスを非表示にします

喜んでJavaScriptまたはjQueryを使用してください。

HTML

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

jQueryの

$(document).ready(function(){ 
    $(document).on("click","select",function(){ 
     $(this).hide(); 
    }); 
}); 

現在のコードは次のとおりです。 https://jsfiddle.net/La9mnfhc/1/

+0

ドロップダウンを希望しない場合は、なぜselectを使用しますか?隠れた入力を使用して、メニューのために独自のものを開発し、フォームに送信したいものをフィールドに入力します。 – Gabriel

+0

なぜなら、私はJavaScriptで〜1000オプションで選択ボックスにデータを入力しており、あらかじめ選択されたオプションを持つ選択ボックスをクリックすると元のメニューが表示されないようにしたいからです。 メニューがポピュレートされた後に表示されます。 – FirstLegion

+0

なぜあなたはその関係を逆転させないのですか?デフォルトでは隠しておき、他のイベントでそれを表示しますか? – derp

答えて

0

あなたはオプションを非表示にしたり、自分自身を選択したい場合は、マウスオーバーであなたのような何かを行うことができます。

$(document).ready(function(){ 
    $(document).on("mouseover","select",function(){ 
    $(this).find('option').hide();//hide options 
    $(this).hide();//hide select itself 
    }); 
}); 

しかし、クリックイベントを使用したい場合、selectの 'click'イベントは 'change'イベントのようなものになります。

+0

隠しオプションは残念なことにブラウザ間であまり互換性がありません。 – FirstLegion

+0

あなたは具体的になりますか? – Jumper

0

あなたは単純なトリックを行うだけで、ページの読み込み時にデフォルトで非表示にしておき、必要に応じて選択後に表示させることができます。 select要素のhtmlの属性としてstyle="display:none"を追加し、その後にshow()にしてください。

関連する問題