Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.09.2011, 08:58
Новичок на форуме
Отправить личное сообщение для alexander32 Посмотреть профиль Найти все сообщения от alexander32
 
Регистрация: 29.09.2011
Сообщений: 4

Открытие меню только по клику левой кнопки
Здравствуйте.
Подскажите, правильно ли я делаю, или можно проще и лаконичнее.
По форуму поискал, но ответа не нашел, скорее всего не то искал.

Нужно выполнять действие по левому клику мышки.
Делаю так:
<a href="javascript:void(0)" onmouseup="if(event.which == 1){Popup();}">

Не могу придумать, как лучше отследить, что клик был именно левой кнопкой.
В функцию Popup() проверку не хочу выносить, потому, что она также может вызываться другой функцией, и тогда проверка внутри создаст проблему.
Мой вариант приемлим в таком виде? Если честно не нравится громозкость конструкции, и вообще не красиво.
Посоветуйте новичку что-нибудь.
Ответить с цитированием
  #2 (permalink)  
Старый 29.09.2011, 09:23
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от alexander32
Не могу придумать, как лучше отследить, что клик был именно левой кнопкой.
onclick тебе в помощь...
Ответить с цитированием
  #3 (permalink)  
Старый 29.09.2011, 09:55
Новичок на форуме
Отправить личное сообщение для alexander32 Посмотреть профиль Найти все сообщения от alexander32
 
Регистрация: 29.09.2011
Сообщений: 4

Хах, думал он тоже на обе кнопки вызывается
От onclick правда отказался, из-за другой причины. Дело в том, что когда один раз нажимаешь на ссылку, она какбы выделяется, и если нажать на enter, то опять придет событие click по тому же самому элементу. И я не придумал как нормально отличить клик мышкой он клика клавиатурой. По идее можно как-то снять выделение, или что там, чтобы на интер повторно не вызывался click по ссылке. Может тоже подскажете как? А то думал решение с onmouseup неплохое, но промахнулся
Ответить с цитированием
  #4 (permalink)  
Старый 29.09.2011, 13:23
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от alexander32
когда один раз нажимаешь на ссылку, она какбы выделяется, и если нажать на enter, то опять придет событие click по тому же самому элементу
Не пойму в чём криминал...

Сообщение от alexander32
По идее можно как-то снять выделение, или что там
Это не выделение... Это focus. Как вариант поставить фокус на другой элемент...
Ответить с цитированием
  #5 (permalink)  
Старый 29.09.2011, 14:15
Новичок на форуме
Отправить личное сообщение для alexander32 Посмотреть профиль Найти все сообщения от alexander32
 
Регистрация: 29.09.2011
Сообщений: 4

Криминал в том, что когда мы нажимаем на ссылку, то выпадает div с интерфейсом меню, и этот div позиционируется исходя из того, куда был сделан клик, считая отступы по .offset(), e.pageX и e.pageY. Если же клик был через enter, то отступы нормально не считаются (в IE работало вроде, в лисе - нет).

Пробовал делать .focus() на другой элемент, но почему-то не получалось.
Уточню, что браузер firefox.

Последний раз редактировалось alexander32, 29.09.2011 в 14:17.
Ответить с цитированием
  #6 (permalink)  
Старый 29.09.2011, 14:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от alexander32
Пробовал делать .focus() на другой элемент, но почему-то не получалось.
И как ты это делал?

Пора тестовый пример маклачить тебе...
Ответить с цитированием
  #7 (permalink)  
Старый 29.09.2011, 15:33
Новичок на форуме
Отправить личное сообщение для alexander32 Посмотреть профиль Найти все сообщения от alexander32
 
Регистрация: 29.09.2011
Сообщений: 4

Попробовал сделать.
Работает, просто я пытался фокус на div перекидывать, видимо этого делать нельзя. На ссылку или поле ввода перекидывается нормально, и всё отлично.
И вот ещё попробовал не перекидывать фокус, а сделать .blur() для изначального элемента, вроде получилось и работает, на enter событие клика не срабатывает
Соответственно пока вопросов больше не имею, спасибо за помощь!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с аккордионом и меню Tie ExtJS 3 01.09.2011 14:36
Меню, выпадающее и сворачивающееся не по hover а по клику adelante jQuery 1 14.01.2011 04:17
Скрипт меню работает только под IE7 и выше TAILER Internet Explorer 1 31.08.2009 13:21
Проблема с меню для кнопки в Гриде progi2007 ExtJS 0 03.08.2009 14:16
Скрипт меню не работает только в Firefox somatic Firefox/Mozilla 2 28.07.2009 03:23