2016-10-05 2 views
4

Я использую Materialize.css для текущего проекта, и у меня есть раскрывающийся список с некоторыми формами ввода внутри него.Предотвращение выпадающего списка materializecss для закрытия при нажатии внутри него

Dropdown имеет возможность закрыть от:

  • щелкать вне .dropdown-content
  • мыши внутри .dropdown-content
  • мыши на .dropdown-button

Что мне нужно, чтобы не закрывать когда щелкнув внутри него, потому что мне нужно иметь возможность заполнять формы ввода и другие действия s.

Вот простой example

+0

Вы не должны использовать раскрывающееся меню для этого типа действий. Выпадающий список предназначен для выбора одного элемента из списка элементов, а не для составления всех форм. Лучшей альтернативой является создание кнопки, которая представляет форму, модальную или эмулирует выпадающее меню по мере необходимости. – ironicaldiction

ответ

8

Быстрое решение будет состоять в том, чтобы остановить трансляцию при нажатии на оболочку содержимого.

$('.dropdown-button + .dropdown-content').on('click', function(event) { 
    event.stopPropagation(); 
}); 

Я бы не использовал «выпадающий список» для данного конкретного прецедента. Но если вы хотите придерживаться его, просто примените фрагмент выше.

+0

Работает как чемпион. ;) –

1

Вы можете использовать, например:

$('#first_name').click(function (event) { 
    event.stopPropagation(); 
    //Do whatever you want 
}); 

избежать событие, генерируемое входом first_name саморазмножения. Выпадающий не обнаружит его, поэтому он не будет закрыт.

+0

ничего более общего? :/Потому что у меня много элементов внутри выпадающих списков. Я попытался поместить '.dropdown-content' вместо' # first_name', но тогда я не могу нажимать на некоторые кнопки вообще. – Plavookac

+0

Что вы имеете в виду, когда говорите, что не можете их нажимать? Я попытался использовать '.dropdown-content' и присвоить id' # hi' ко второму '' на вашем примере. Затем я попытался нажать кнопку с помощью '$ ('# hi'). Click (function (event) { console.log ('kkk') });' определено и сработало. –

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