2017-02-01 3 views
0

Я пытаюсь скрыть все выпадающее меню в событии клика, но есть немного задержки, и он отображает меню в течение секунды. Я хочу, чтобы он скрылся, не показывая меню вообще.Скрытие всего выделенного выпадающего меню при нажатии без отображения меню

Можно ли как:

  • Не отображать меню на всех по щелчку

ИЛИ

  • Скрыть все поле выбора без него, показывая меню на мыши

Хорошо использовать 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

Если вы не хотите раскрывающийся список, почему вы используете выбор? Используйте скрытый ввод, создайте собственную вещь для меню и заполните поле тем, что вы хотите отправить в форме. – Gabriel

+0

Причина в том, что я заполняю поле выбора с ~ 1000 опциями в JavaScript и не хочу, чтобы исходное меню показывалось при нажатии на поле выбора, которое имеет только выбранный вариант. Он отобразит меню после его заполнения. – FirstLegion

+0

Почему вы не инвертируете отношения? по умолчанию он скрыт, а затем отображает его на каком-то другом событии? – derp

ответ

0

Если вы хотите, чтобы скрыть параметры или выбрать сам, при наведении курсора мыши вы можете сделать что-то вроде:

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

Но если вы хотите использовать событие click, событие «click» для выбора будет чем-то вроде события «change».

+0

К сожалению, варианты скрытия не очень совместимы в браузерах. – FirstLegion

+0

Можете ли вы быть конкретными? – Jumper

0

вам просто нужно сделать простой трюк, у вас есть возможность скрытия по умолчанию при загрузке страницы, и вы можете сделать его видимым после выбора, как хотите. просто добавьте style="display:none" как атрибут в html элемента select и сделайте это show() после.

Смежные вопросы