Открытие меню только по клику левой кнопки
Здравствуйте.
Подскажите, правильно ли я делаю, или можно проще и лаконичнее. По форуму поискал, но ответа не нашел, скорее всего не то искал. Нужно выполнять действие по левому клику мышки. Делаю так: <a href="javascript:void(0)" onmouseup="if(event.which == 1){Popup();}"> Не могу придумать, как лучше отследить, что клик был именно левой кнопкой. В функцию Popup() проверку не хочу выносить, потому, что она также может вызываться другой функцией, и тогда проверка внутри создаст проблему. Мой вариант приемлим в таком виде? Если честно не нравится громозкость конструкции, и вообще не красиво. Посоветуйте новичку что-нибудь. |
Цитата:
|
Хах, думал он тоже на обе кнопки вызывается :)
От onclick правда отказался, из-за другой причины. Дело в том, что когда один раз нажимаешь на ссылку, она какбы выделяется, и если нажать на enter, то опять придет событие click по тому же самому элементу. И я не придумал как нормально отличить клик мышкой он клика клавиатурой. По идее можно как-то снять выделение, или что там, чтобы на интер повторно не вызывался click по ссылке. Может тоже подскажете как? А то думал решение с onmouseup неплохое, но промахнулся :lol: |
Цитата:
Цитата:
|
Криминал в том, что когда мы нажимаем на ссылку, то выпадает div с интерфейсом меню, и этот div позиционируется исходя из того, куда был сделан клик, считая отступы по .offset(), e.pageX и e.pageY. Если же клик был через enter, то отступы нормально не считаются (в IE работало вроде, в лисе - нет).
Пробовал делать .focus() на другой элемент, но почему-то не получалось. Уточню, что браузер firefox. |
Цитата:
Пора тестовый пример маклачить тебе... ;) |
Попробовал сделать.
Работает, просто я пытался фокус на div перекидывать, видимо этого делать нельзя. На ссылку или поле ввода перекидывается нормально, и всё отлично. И вот ещё попробовал не перекидывать фокус, а сделать .blur() для изначального элемента, вроде получилось и работает, на enter событие клика не срабатывает :) Соответственно пока вопросов больше не имею, спасибо за помощь! :) |
Часовой пояс GMT +3, время: 07:04. |