Я понял, что Firefox обрабатывает событие click по тегу иначе, чем Webkit/IE, и я не мог понять, почему и как решить эту проблему. разница.
В частности, Webkit/IE рассматривает каждое событие щелчка на как комбинацию обоих щелчков по «выбрать», и щелчков одного выпадающего списка-вниз
, как показано на графиках ниже:
Первый щелчок:
Второй щелчок:
В Webkit/IE событие щелчка будет запущено только после того, как будут выполнены оба щелчка. Выполнено.
Однако в Firefox первый щелчок по тегу рассматривается как событие щелчок , второй щелчок для выбора
рассматривается как другое событие щелчок .. Таким образом, в Firefox было запущено двасобытия click по сравнению с одним событием в Webkit/IE для той же операции.
Теперь, чтобы продемонстрировать это на примере кода, предполагая, что у нас есть:(ссылка JSfiddle)
В Webkit/IE выполнение набора операций, показанных выше на графике (в первый раз), даст результат:
mouse down!
В Firefox выдаст:
mouse down!
mouse down again!
Почему это так и как это исправить?
Изменить:Пробовал на чистом JavaScript без jQuery, результат тот же.
Редактировать 2:Немного больше контекста, я первоначально ответил на этот вопрос:onclick на теге option не работает в IE и Chrome и получил награду за мой ответ. Однако, как позже указал оператор, мое решение не сработало в Firefox. Я решил копнуть глубже, чтобы решить эту проблему, и поэтому был задан этот вопрос, и я вознаграждаю 50 наград, которые я получил от этого решения. По сути,проблема заключается в создании меню выбора, которое будет запускать событие всякий раз, когда делается выбор, даже если он один и тот же. Это оказалось сложнее, чем ожидалось, если вообще возможно из-за разных реализаций браузеров.
Редактировать 3:Я полностью осведомлен о onchange
, но вопрос здесь не о onchange
, если вы внимательно читаете. Мне нужно, чтобы каждый выбор запускал событие , даже если это один и тот же выбор (, который не вызовет onchange
.