Код:
$('input.media-checkbox').live('click', function(e){
e.preventDefault();
var that = $(this);
if (that.attr('checked') == 'checked'){
var m = that.attr('media');
var mid = 'verify_' + m;
that.parents('div.state-container').find('ul.' + mid).remove();
that.attr('checked', false);
} else {
var url = AJAX_URL;
$.ajax({
type: 'GET',
url: url,
dataType: 'html',
success: function(data){
that.parents('li').siblings('li.verification').children('div.media-verification').append(data).fadeIn(500);
that.attr('checked', 'checked');
}
});
}
return false;
});
Я являюсь ajaxing в форме, а затем активирую событие click на соответствующих флажках в ajax в другом частичном случае, если это необходимо. Форма добавляется красиво, и события щелчка запускаются, проверяя флажки, которые необходимо проверить, и активируем второй ajax, поскольку атрибут checked
этого флажка был первоначально false
.
Что из моего сыра, если я ОБРАЩАЮТ один из этих ящиков. Несмотря на e.preventDefault()
, атрибут checked
имеет значение false
ПЕРЕД тестом, поэтому оператор if
всегда выполняет оператор else
. Я также пробовал это с помощью $.is(':checked')
, поэтому я полностью озадачен.
Похоже, что состояние unchecked → checked проверяет исходное состояние, но checked → unchecked does not. Любая помощь?