Мне кажется, что объяснение состоит в том, что это ошибка в том, как браузер обрабатывает щелчки на флажках:
Поведение по умолчанию должно иметь место после вызывается пользовательский обработчик событий,То, что вы видите, когда нажимаете на кнопки, на самом деле является правильным поведением.Забавное поведение состоит в том, что когда вы щелкаете по полю, он устанавливается перед запуском пользовательского обработчика событий.
Чтобы увидеть, насколько это странно, вы можете return false;
из обработчика событий.Это должно предотвратить поведение по умолчанию.Что вы увидите, так это то, что флажок на самом деле установлен, когда вы щелкаете по нему, а затем снимаете флажок, когда возвращается обработчик событий!
Кстати, я использую Firefox 4. Я не знаю, что этокак в других браузерах.Кажется, это не связано с jQuery, так как я вижу то же самое забавное поведение, когда делаю все без него.