JavaScript: при выборе различных пунктов выпадающего меню я хочу показать больше опций - PullRequest
1 голос
/ 03 декабря 2011

У меня есть выпадающее меню с различными параметрами.Теперь при выборе определенных пунктов меню я бы хотел показать больше опций.Каждый набор параметров будет отличаться для каждого пункта меню, как мне поступить?Правильный ли способ добавить новые опции в документ?

1 Ответ

0 голосов
/ 03 декабря 2011

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

Вот очень простой пример http://javascriptsource.com/navigation/expanding-menu.html, но есть много других.Просто разверните меню Google javascript.

Кроме того, если вы хотите использовать jQuery (которым я не поклонник, но он идеально подходит для такого рода вещей, если вы не собираетесь его использоватьна сайтах мобильных устройств) взгляните на это: http://www.1stwebdesigner.com/css/36-eye-catching-jquery-navigation-menus/

[Изменить] на основе вашего комментария ...

Не зная специфики того, что вы хотите сделать, ясказал бы, что если у вас есть блоки кода, которые нужно добавлять специально, в зависимости от того, кто-то нажимает на что-то, и вы уверены, что это за блоки кода, самый простой (хотя и не самый элегантный) способ сделать это - сохранитьэти блоки кода в виде строк и добавьте их к innerHTML любого объекта, ожидающего их, на основе нажатия кнопки.

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

Более элегантный способ сделать это состоит в том, чтобы создать фактические узлы в xml и установить для их отображения значение "none", чтобы они некак на странице.Затем используйте cloneNode, чтобы сделать их копии, и присоедините их к тому, к чему они принадлежат.

Опять же, трудно дать вам конкретику без конкретной проблемы, но в целом это два пути.

...