2010-07-06 2 views
4

Когда я привязываю функцию к ссылке с $('a#link_id').click(), а затем я нажимаю ссылку, она запускает функцию и все в порядке, но когда я «активирую» кнопку по-другому (т. Е. Фокусируюсь на вкладке, а затем нажимая полосу), это просто не работает.

То же самое происходит с $('select#dropbox_id').change(): Он работает, когда я меняю его мышью, но не с помощью стрелок направления. Есть ли способ для достижения этого без необходимости вручную перерисовывать с помощью $.keyup()? Я не знаю, может быть, я просто пропустил мероприятие.

+0

Не могли бы вы включить некоторые из своих значков, чтобы мы знали, с чем имеем дело? По моему опыту, метод, с помощью которого клик вызывается, не имеет значения. Вы пробовали разные браузеры? –

+0

Почему нажатие пробела вызывает щелчок? нажатие пробела в хроме сделает браузер прокруткой вниз ... – Reigel

+0

@Reigel Нет, если вы сначала выбираете элемент, например. по tabbing (клавише Tab). – deceze

ответ

0

Вам не нужны какие-либо события.

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

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

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

Если вам по-прежнему нужна помощь, вы можете включить код в свой вопрос.

Надеюсь, это поможет.

0

Я думаю, вам не хватает focus или focusin событий. На элементах select нет никакого родного события, которое срабатывает при прокрутке списка вниз по клавиатуре. focus и focusin будет стрелять один раз element получает фокус.

Вы не можете связать такой тип события с options, по крайней мере, не скрещиванием. Поэтому, если вы действительно хотите это уловить, вам нужно связать событие или keyup с родительским элементом select.

Смежные вопросы