jQuery sort elements usando dados id

(desculpe se a pergunta já existe)

Eu sou muito novo no desenvolvimento do jQuery.

Eu tenho estrutura HTML da seguinte forma:

<div class="clist">
    <div data-sid=1></div>
    <div data-sid=2></div>
    <div data-sid=2></div>
    <div data-sid=1></div>
    <div data-sid=2></div>
    <div data-sid=2></div>
    <div data-sid=1></div>
</div>

Eu gostaria de classificá-los como:

<div class="clist">
    <div data-sid=1></div>
    <div data-sid=1></div>
    <div data-sid=1></div>
    <div data-sid=2></div>
    <div data-sid=2></div>
    <div data-sid=2></div>
    <div data-sid=2></div>
</div>

Estou usando a função

function sortContacts() {
var contacts = $('div.clist'), cont = contacts.children('div');

cont.detach().sort(function(a, b) {
            var astts = $(a).data('sid');
            var bstts = $(b).data('sid')
            //return astts - bstts;
            return (astts > bstts) ? (astts > bstts) ? 1 : 0 : -1;
        });

contacts.append(cont);
}

Mas não está funcionando como esperado ..

Ele está funcionando bem pela primeira vez, mas quando adicionar novo elemento ou alterar o data-sid, ele não está funcionando.

EDITAR:

Demonstração

http://jsfiddle.net/f5mC9/1/

não está funcionando?

questionAnswers(3)

yourAnswerToTheQuestion