Во-первых, вы всегда проверяете значение optionChecked
, которое определяется до нажатия флажка, что не меняет состояние флажка.Во-вторых, вы слушаете событие щелчка всего buttonPane
, а не флажок.Третья проблема заключается в том, что вы не устанавливаете флажок на предыдущее значение при открытии средства выбора даты.(Хотя, возможно, ваш test
объект позаботится об этом, я не видел эту часть кода, скрипта просто выдает ошибку об этом).
Итак, установите флажок в правильном состоянии:
buttonPane.append(html);
buttonPane.find(':checkbox').prop('checked', $('.datepicker').datepicker('option', 'showWeek'));
Прослушайте щелчки флажков:
buttonPane.find(':checkbox').click(function () {
... и при щелчке не проверяйте старое свойство optionChecked
, которое не изменилось,но проверьте, установлен ли флажок:
if($(this).is(':checked'))
Вот скрипка, которая позаботится обо всем этом , но, как и сейчас, она закрывается при каждом нажатии флажка,Однако, когда код восстанавливает предыдущее состояние, он будет отображаться так, как вы его изменили, после повторного нажатия на него.