Comments 47
Как здорово! ) и быстро !))
спасибо большущее за информацию, непременно к осмысливанию
спасибо большущее за информацию, непременно к осмысливанию
Cool, thnx
сделайте иконки на спрайтах
Интересная штука. Подгючевает в IE, но, работает.
оффтоп: было бы неплохо чтобы автору топика добавлялась карма за то, что другие заносят его пост в избранное, а то пост полезный, а плюсануть не могу… пусть хоть так опосредованно перепадает благодарность :)
Хм… у меня по клику правой клавигей ничего не происходит… А вот о клику левой — открывается)
Firefox 3.0.3, Kubuntu 8.04.1…
И еще — насколько я помню, Опера не отлавливает клик правой клавишей. Или уже отлавливает?
Firefox 3.0.3, Kubuntu 8.04.1…
И еще — насколько я помню, Опера не отлавливает клик правой клавишей. Или уже отлавливает?
Так и должно быть, чтобы сохранить возможность для пользователя открыть дефолтное меню браузера.
Не отлавливает. Именно поэтому от поддержки правой кнопки мыши я отказался. Хотя никто не запрещает биндить по любому событию (через getCaller(string event,menu menu))
В настройках Оперы есть пункт «Allow script to receive right click», но я как-то по традиции снимаю галочку.
Заметил особенность в Опере, если выбрать в меню пункт «Назад...», то после этого меню перестаёт вызываться.
Да, спасибо. Щас тоже заметил. Видимо для оперы history.back(); когда назад некуда — это ошибка.
Видимо, это странность Оперы: try-catch эту ошибку не ловит. Если есть куда переходить — переходит. Если нет — убивает скрипты. Что ж. Будем боросться.
Запуск другим потоком тоже ничего не дал. Если есть идеи — пишите.
Запуск другим потоком тоже ничего не дал. Если есть идеи — пишите.
А сложно под mootools всё это переделать?
Опечаточку поправьте)
«Если знаете реАлизации лучше»…
«Если знаете реАлизации лучше»…
В IE6 не работает (показывается за краями видимой области)
А можно ли как-то динамически подгружать пункты меню. Например в базе хранится некий список с URL по который можно переходить и когда юзер кликает на «вызов меню», то этот список из базы погружается в меню…
А можно ли как-то динамически подгружать пункты меню. Например в базе хранится некий список с URL по который можно переходить и когда юзер кликает на «вызов меню», то этот список из базы погружается в меню…
С ие разберемся, ага. Динамическая подгрузка была реализована в ранней версии меню. Там можно было задавать меню строкой-урлом, по которому шел запрос. На практике оказалось не нужно и эту ветку быстро забыли. Фактически игра не стоит свеч: для подобных меню правильнее загружать ресурсы заранее, иначе это ведет к увеличению времени взаимодействия с пользователем и лишним гет-запросам.
>Фактически игра не стоит свеч:…
Нууууу, может быть. Хотя если это реализуемо, что почему бы и нет. Я пересмотрел очень много контекстных меню — и у всех один, для меня, недостаток — надо заранее задавать все пункты меню. Я бы предпочел сделать лишний ajax запрос для генерации меню, чем заранее загружать его, IMHO.
Нууууу, может быть. Хотя если это реализуемо, что почему бы и нет. Я пересмотрел очень много контекстных меню — и у всех один, для меня, недостаток — надо заранее задавать все пункты меню. Я бы предпочел сделать лишний ajax запрос для генерации меню, чем заранее загружать его, IMHO.
А что мешает сделать это ручками?
Так мы грузим всё одним запросом.
$.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); }
Так мы грузим всё одним запросом.
спасибо — будем пробовать
Большой привет Казани! Очень хочу там побывать! (сорри за офтоп).
Теперь по делу: если не ошибаюсь, то в опере нельзя использовать контекстное меню? или все таки ошибаюсь? позже протестирую.
Теперь по делу: если не ошибаюсь, то в опере нельзя использовать контекстное меню? или все таки ошибаюсь? позже протестирую.
Автор! Настоятельно советую перенести вызов js в конец файла, или сделать его как-то отложенно. Что меня всегда раздражало — так это привычка ставить js в начало файла, из за чего ощутимо замедляется загрузка((( Неприкольно смотреть на белвый экран((
Разница в скорости загрузки с и без поддержки js видна невооруженным глазом.
А меню — хорошее, только стили бы поменять умолчальные.
Разница в скорости загрузки с и без поддержки js видна невооруженным глазом.
А меню — хорошее, только стили бы поменять умолчальные.
Можно еще добавить стрелки вверх вниз. Там элементарно делается. Пример jotsky.com.
идея хорошая, но возможно динамические меню стоит реализовывать через ajax.
фиксированные меню лучше сразу сгенерировать в html, завернуть в невидимый блок и вызывать по требованию.
фиксированные меню лучше сразу сгенерировать в html, завернуть в невидимый блок и вызывать по требованию.
<div style="display: none;"> menu </div>
Фиксированные меню рендерятся по требованию. Довольно часто их вообще не вызывают. Всё-таки контекстными меню (по крайней мере наши юзеры) пользуются не так часто. Но в принципе на инит поставить вызов render() дело пяти секунд. Раньше, кстати так и было, но пришлось убрать в силу указанных выше причин.
а я бы привязал меню к курсору, а то ведь, если область клика большая то меню вылазит далековато от меню (собственно говоря — в примере так и есть), а так это было бы более похоже на контекстное меню, где кликнул — там и вылезло.
саму функцию попробовал — интересная, вот теперь думаю использовать, или свое сделать, заточенное под мои нужды.
саму функцию попробовал — интересная, вот теперь думаю использовать, или свое сделать, заточенное под мои нужды.
Отличный пример!!!
Вах! Error 404 по всем ссылкам! Верните все назад!
Sign up to leave a comment.
Контекстное меню на javascript: небольшое, но мощное