у меня возникла странная проблема с функцией jquery click. Предполагается, что пользователь нажимает ссылку ".selectlink", и на нем указывается поле на странице. Это работает отлично, снова щелкните по нему, и он не закрывает окно..... также отлично, нажмите ссылку еще раз, и ничего не происходит, щелкните по нему еще и ничего не происходит, поэтому функция работает только после двух затем останавливается, пока страница не обновится.
$(document).on('click', '.selectlink', function () {
var myId = $('#check_' + this.id);
if ($(myId).is(':checked')) {
$(myId).attr('checked', false);
} else {
$(myId).attr('checked', true);
}
countChecked();
});
Проблема возникает из-за того, что состояние ": checked" определяется на основе свойства "checked" в DOM, а не наличия или значения атрибута "checked". Дополнительную информацию о свойствах и атрибутах см. В документах jquery: http://api.jquery.com/prop/
Для того, чтобы он работал (как вы обнаружили), вы делаете это:
var myId = $('#check_' + this.id);
if ($(myId).is(':checked')) {
$(myId).prop('checked', false);
} else {
$(myId).prop('checked', true);
}
пытаться
$ (document).off('click'). on ('click', '.selectlink', function() {
развязать и привязать.
Как странно, я нашел, если я использую prop вместо того, чтобы приписывать это работает более двух раз, а не идея почему?.
$(document).on('click', '.selectlink', function () {
var myId = $('#check_' + this.id);
if ($(myId).is(':checked')) {
$(myId).prop('checked', false);
}
else {
$(myId).prop('checked', true);
}
countChecked();
});
});