jQuery / Javascript: événement de clic sur une case à cocher et attribut 'checked'

Le code:

$('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;
});

Je suis ajaxing dans un formulaire, puis le tir de l'événement de clic sur les cases à cocher afin d'ajax dans une autre partielle si nécessaire. La forme est bien inséré, puis cliquez sur événements sont déclenchés, en cochant les cases qui doivent être vérifiés et le déclenchement du second ajax, depuis le checked attribut de la case à cocher a été initialement false.

Ce qui est de caillage mon fromage est si je DÉCOCHEZ l'une de ces boîtes. Malgré e.preventDefault()le checked de définir l'attribut false AVANT le test, de sorte que le if instruction s'exécute toujours la else déclaration. J'ai aussi essayé avec $.is(':checked')donc je suis complètement dérouté.

Il semble que décoché -> état coché lit l'état d'origine, mais vérifié -> décoché ne l'est pas. Toute aide?

source d'informationauteur b. e. hollenbeck