Проблема с флажками состоит в основном в том, чтобы заставить их работать правильно в IE6, так как событие change
срабатывает при любых обстоятельствах.
Давайте начнем с функции отключения:
function onCheckChange() {
if ($("#all-day-checkbox").is(':checked'))
$("select").attr('disabled', 'disabled');
else
$("select").removeAttr('disabled');
}
Обратите внимание, что здесь я использую только select
, что почти наверняка шире, чем вы хотели бы, но select.some-class-to-identify-the-hours-and-minutes-and-seconds-dropdowns
будет работать так же хорошо.
Также обратите внимание, что функция сама выясняет, установлен ли флажок, делая его идемпотентным: во время проверки флажка безопасно вызывать повторно.
Теперь нам просто нужно привязать эту функцию к нескольким различным событиям:
$("#all-day-checkbox").click(onCheckChange).change(onCheckChange);
$("label[for=all-day-checkbox]").click(onCheckChange);