Обнаружение щелчка по выделенному элементу onBlur по первому щелчку.(по умолчанию второй клик) - PullRequest
1 голос
/ 19 августа 2011

Я ознакомился с вопросами, касающимися определения состояния меню выбора, будь то видимое , открыто или закрыто и быстрый ответ в том, что он не универсален и зависит от того, что вы пытаетесь сделать. Моя ситуация не покрывается ни одним из этих ответов 100%.

Мне нужно определить, когда закрыто меню выбора, которое в настоящее время работает, путем сохранения переменной onblur; однако элемент select не теряет фокус при первом отключении, а при втором отключении. Могу ли я обнаружить событие, которое происходит при первом отключении? или сделать выбор потерять фокус на первом щелчке, а не на втором? Нужны ответы на чистом JavaScript, нет jQuery.

Вот пример кода, демонстрирующего это: http://jsfiddle.net/BhnH9/1/

Ответы [ 2 ]

0 голосов
/ 09 января 2013

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

$('select').bind('change', function(e) {
  $(this).trigger('blur');
});

$('select').bind('blur', function(e) {
  alert('select lost focus');
});

Вот JSFiddle: http://jsfiddle.net/7tUse/

0 голосов
/ 19 августа 2011

Вы можете использовать общий приемник щелчков по документу (или некоторый другой подходящий предок выбора) и посмотреть, соответствует ли элемент выбора document.activeElement .Если это так, то он имеет фокус либо потому, что только что получил его, либо был выбран параметр.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...