Comment basculer l'attribut de données avec jQuery?

J'ai besoin de basculer entre les deux valeurs possibles pour un attribut de données.

Si data-state est égal à enabled alors je veux le changer pour disabled et vice versa.

$('.sites .state').on('ajax:success', function(data, status, xhr) {
   var site = $(this).parents('article').first();

   if (site.data('state') == 'enabled') {
     site.attr('data-state', 'disabled');
   } else {
     site.attr('data-state', 'enabled');
   }
});

REMARQUE: j'avais besoin de changer l'élément du DOM et à ma connaissance, je ne peux pas utiliser data de le faire (d'où l'utilisation de attr).

Quel est donc le problème?
Voir ma mise à jour. J'avais besoin de changer l'élément du DOM et, à ma connaissance, je ne peux pas utiliser les données pour le faire (d'où l'utilisation de l'attribut).

OriginalL'auteur Shpigford | 2013-01-23