Der Code:jQuery/Javascript: Ereignis auf einer Checkbox anklicken und das 'geprüft' Attribut
$('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;
});
ich in Form bin ajaxing, dann das Click-Ereignis in einem anderen Teil auf relevante Kontrollkästchen, um Ajax-Brennen, wenn nötig . Das Formular wird ordnungsgemäß eingefügt und die Klickereignisse werden ausgelöst, indem die zu prüfenden Kontrollkästchen aktiviert und der zweite Ajax ausgelöst wird, da das Attribut checked
des Kontrollkästchens ursprünglich false
war.
Was meinen Käse gerinnt, ist, wenn ich eine dieser Kisten auschecke. Trotz e.preventDefault()
wird das checked
-Attribut vor dem Test auf false
festgelegt, sodass die if
-Anweisung immer die else
-Anweisung ausführt. Ich habe es auch mit $.is(':checked')
versucht, also bin ich völlig verwirrt.
Es scheint, dass nicht aktiviert -> aktiviert Status liest den ursprünglichen Zustand, aber aktiviert -> nicht aktiviert nicht. Irgendeine Hilfe?
haben Sie versucht, 'false;' anstelle von 'e.preventDefault' zurückzugeben? Hast du auch 'function (e) {e = e || benutzt? Veranstaltung; ...} '? –
'Return false', ja - es ist am Ende des Codes. Sollte es innerhalb der 'if'-Schließung sein? Ich bin nicht vertraut mit dem zweiten Bit Code ... wofür ist es? –
Das zweite Bit prüft, ob 'e' nicht-null ist, wenn es nicht der globalen' event'-Variablen zugewiesen wird. –