Функция клика Jquery работает только дважды

0

у меня возникла странная проблема с функцией 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();
});
Теги:
function
onclick

3 ответа

1

Проблема возникает из-за того, что состояние ": 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);
}
0

пытаться

$ (document).off('click'). on ('click', '.selectlink', function() {

развязать и привязать.

0

Как странно, я нашел, если я использую 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();
    });
});
  • 0
    attr () может не принимать логический 2-й параметр. Вы пробовали 0/1 вместо этого?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню