2012-02-04 2 views
0

Я хочу создать меню (меню регистрации), см. this, чтобы получить представление об этом. Когда пользователь нажимает на эту кнопку/ссылку, появляется раскрывающееся меню, с помощью которого он может что-то сделать (здесь вход в систему).jQuery: выпадающее меню onclick с элементами управления

Поведение звена должно быть следующее:

  1. выпадающее меню должно появиться при нажатии на эту кнопку/ссылку.
  2. при нажатии на любую страницу (включая кнопку/ссылку), но вне меню меню должно исчезнуть.
  3. Если щелкнуть где-нибудь в раскрывающемся меню, меню не должно исчезнуть.
  4. Все элементы управления в раскрывающемся меню должны работать.

Мне как-то удалось получить первые три рабочих, но затем элементы управления в раскрывающемся меню (4-е поведение) не работают.

Код javascript/jQuery вместе с кодом html предоставляется here (ссылка jsfiddle, такая же, как указано выше). Вы можете разветвить его и внести изменения.

Спасибо.

+0

Hah! Я просто задал более или менее тот же вопрос ... вы можете увидеть мое (слегка сломанное) решение здесь: http://stackoverflow.com/questions/9138236/jquery-easy-pulldown-menu – neokio

ответ

4
+0

Это именно то, что я хочу добиться, я просмотрел код jQuery этой страницы. Не могли бы вы немного объяснить, что вы делаете. – user1144616

+0

Загрузите этого чувака источника, просмотрев исходный код страницы. – Dotnet

+0

Добавлена ​​ссылка для загрузки исходной проверки, что – Dotnet

0

Я сделал вилку, что у вас есть на вашем jsFiddle: http://jsfiddle.net/DukyJ/

Если вы посмотрите на код Я просто добавил дополнительный div, чтобы иметь содержимое страницы, поэтому мне не нужно назначать клик даже ts ко всему телу только к этому div. Затем я удалил return false и stopProppagation и просто добавил '#' к ссылке в href, потому что это не было необходимо. И, наконец, просто добавлен какой-то стиль в ссылку signin и панель singin, чтобы вы могли видеть, что меню отображается над содержимым, так как я предполагаю, что вы хотите, чтобы он появился.

+0

Элементы управления в раскрывающемся меню пока не работают. Например, попробуйте установить флажок «Запомнить меня», это не сработает. Аналогично, если вы добавите ссылки на «Забыли пароль» или «Зарегистрироваться сейчас» (вместо «#»), это не сработает. Кажется, из-за 'event.preventDefault();'. – user1144616

+0

@ user1144616 Я вижу это. Самый простой способ, с помощью которого я мог придумать, - ухватить события mouseup и keyup на флажке (поскольку флажок, по-видимому, единственный, затронутый) и проверить/снять флажок вручную. Попробуйте снова ссылку jsfiddle, чтобы увидеть его. –

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