Комментарии 47
Как здорово! ) и быстро !))
спасибо большущее за информацию, непременно к осмысливанию
спасибо большущее за информацию, непременно к осмысливанию
0
По идее, когда курсор уходит с пункта с подменю, то подменю должно скрываться.
0
Cool, thnx
0
сделайте иконки на спрайтах
+1
Интересная штука. Подгючевает в IE, но, работает.
0
оффтоп: было бы неплохо чтобы автору топика добавлялась карма за то, что другие заносят его пост в избранное, а то пост полезный, а плюсануть не могу… пусть хоть так опосредованно перепадает благодарность :)
+12
Хм… у меня по клику правой клавигей ничего не происходит… А вот о клику левой — открывается)
Firefox 3.0.3, Kubuntu 8.04.1…
И еще — насколько я помню, Опера не отлавливает клик правой клавишей. Или уже отлавливает?
Firefox 3.0.3, Kubuntu 8.04.1…
И еще — насколько я помню, Опера не отлавливает клик правой клавишей. Или уже отлавливает?
0
Так и должно быть, чтобы сохранить возможность для пользователя открыть дефолтное меню браузера.
0
Не отлавливает. Именно поэтому от поддержки правой кнопки мыши я отказался. Хотя никто не запрещает биндить по любому событию (через getCaller(string event,menu menu))
0
В настройках Оперы есть пункт «Allow script to receive right click», но я как-то по традиции снимаю галочку.
0
Заметил особенность в Опере, если выбрать в меню пункт «Назад...», то после этого меню перестаёт вызываться.
+1
Да, спасибо. Щас тоже заметил. Видимо для оперы history.back(); когда назад некуда — это ошибка.
0
Видимо, это странность Оперы: try-catch эту ошибку не ловит. Если есть куда переходить — переходит. Если нет — убивает скрипты. Что ж. Будем боросться.
Запуск другим потоком тоже ничего не дал. Если есть идеи — пишите.
Запуск другим потоком тоже ничего не дал. Если есть идеи — пишите.
0
А сложно под mootools всё это переделать?
0
Опечаточку поправьте)
«Если знаете реАлизации лучше»…
«Если знаете реАлизации лучше»…
0
В IE6 не работает (показывается за краями видимой области)
А можно ли как-то динамически подгружать пункты меню. Например в базе хранится некий список с URL по который можно переходить и когда юзер кликает на «вызов меню», то этот список из базы погружается в меню…
А можно ли как-то динамически подгружать пункты меню. Например в базе хранится некий список с URL по который можно переходить и когда юзер кликает на «вызов меню», то этот список из базы погружается в меню…
0
С ие разберемся, ага. Динамическая подгрузка была реализована в ранней версии меню. Там можно было задавать меню строкой-урлом, по которому шел запрос. На практике оказалось не нужно и эту ветку быстро забыли. Фактически игра не стоит свеч: для подобных меню правильнее загружать ресурсы заранее, иначе это ведет к увеличению времени взаимодействия с пользователем и лишним гет-запросам.
0
>Фактически игра не стоит свеч:…
Нууууу, может быть. Хотя если это реализуемо, что почему бы и нет. Я пересмотрел очень много контекстных меню — и у всех один, для меня, недостаток — надо заранее задавать все пункты меню. Я бы предпочел сделать лишний ajax запрос для генерации меню, чем заранее загружать его, IMHO.
Нууууу, может быть. Хотя если это реализуемо, что почему бы и нет. Я пересмотрел очень много контекстных меню — и у всех один, для меня, недостаток — надо заранее задавать все пункты меню. Я бы предпочел сделать лишний ajax запрос для генерации меню, чем заранее загружать его, IMHO.
0
А что мешает сделать это ручками?
Так мы грузим всё одним запросом.
$.getJSON('datasource.php?q=GetAllDataInOneRequets',function(json_response_object){ $('#menu_click_here').bindMenu(json_response_object.menu1); $('#menu_click_me').bindMenu(json_response_object.menu2); $('.blablablaMenu').bindMenu(json_response_object.menuBlaBlaBla); }
Так мы грузим всё одним запросом.
0
спасибо — будем пробовать
0
Большой привет Казани! Очень хочу там побывать! (сорри за офтоп).
Теперь по делу: если не ошибаюсь, то в опере нельзя использовать контекстное меню? или все таки ошибаюсь? позже протестирую.
Теперь по делу: если не ошибаюсь, то в опере нельзя использовать контекстное меню? или все таки ошибаюсь? позже протестирую.
0
Автор! Настоятельно советую перенести вызов js в конец файла, или сделать его как-то отложенно. Что меня всегда раздражало — так это привычка ставить js в начало файла, из за чего ощутимо замедляется загрузка((( Неприкольно смотреть на белвый экран((
Разница в скорости загрузки с и без поддержки js видна невооруженным глазом.
А меню — хорошее, только стили бы поменять умолчальные.
Разница в скорости загрузки с и без поддержки js видна невооруженным глазом.
А меню — хорошее, только стили бы поменять умолчальные.
0
Можно еще добавить стрелки вверх вниз. Там элементарно делается. Пример jotsky.com.
0
идея хорошая, но возможно динамические меню стоит реализовывать через ajax.
фиксированные меню лучше сразу сгенерировать в html, завернуть в невидимый блок и вызывать по требованию.
фиксированные меню лучше сразу сгенерировать в html, завернуть в невидимый блок и вызывать по требованию.
<div style="display: none;"> menu </div>
0
Фиксированные меню рендерятся по требованию. Довольно часто их вообще не вызывают. Всё-таки контекстными меню (по крайней мере наши юзеры) пользуются не так часто. Но в принципе на инит поставить вызов render() дело пяти секунд. Раньше, кстати так и было, но пришлось убрать в силу указанных выше причин.
0
а я бы привязал меню к курсору, а то ведь, если область клика большая то меню вылазит далековато от меню (собственно говоря — в примере так и есть), а так это было бы более похоже на контекстное меню, где кликнул — там и вылезло.
саму функцию попробовал — интересная, вот теперь думаю использовать, или свое сделать, заточенное под мои нужды.
саму функцию попробовал — интересная, вот теперь думаю использовать, или свое сделать, заточенное под мои нужды.
0
Отличный пример!!!
0
Вах! Error 404 по всем ссылкам! Верните все назад!
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Контекстное меню на javascript: небольшое, но мощное