Primer:Флажок HTML может быть установлен как indeterminate
, который отображает его как ни отмеченный, ни снятый. Даже в этом неопределенном состоянии все еще существует базовое логическое checked
состояние.
При выборе неопределенного флажка он теряет свое состояние indeterminate
. В зависимости от браузера (Firefox)он может дополнительно переключать свойство checked
.
Этот jsfiddle иллюстрирует ситуацию. В Firefox однократное нажатие на любой из флажков приводит к переключению их исходного базового состояния checked
. В IE свойство checked
не используется для первого клика.
Я бы хотел, чтобы все браузеры вели себя одинаково, даже если для этого потребуется дополнительный javascript. К сожалению, для свойства indeterminate
установлено значение false перед вызовом обработчика onclick
(или onchange
и jquery change
), поэтому я не могу определить, вызывается ли он для щелчка на флажке indeterminate
или нет.
События mouseup
иkeyup
(для пробела toggle)показывают предыдущее состояние indeterminate
, но я бы не хотел быть таким конкретным:, это кажется хрупким.
Я мог бы сохранить отдельное свойство для флажка(data-indeterminate
или аналогичного ), но я хотел знать, есть ли простое решение, которое мне не хватает, и/или есть ли у других людей подобные проблемы.