Créer un événement spécial jQuery pour le contenu modifié

Je suis en train de créer un jQuery événement spécial qui se déclenche lorsque le contenu qui est lié, les changements. Ma méthode est de vérifier le contenu avec un setInterval et de vérifier si le contenu a changé depuis la dernière fois. Si vous avez une meilleure méthode de le faire, faites le moi savoir. Un autre problème est que je n'arrive pas à effacer l'intervalle. De toute façon, ce dont j'ai besoin est la meilleure façon de vérifier le contenu des modifications à l'événement.spécial.

(function(){

    var interval;

    jQuery.event.special.contentchange = {
        setup: function(data, namespaces) {
            var $this = $(this);
            var $originalContent = $this.text();
            interval = setInterval(function(){
                if($originalContent != $this.text()) {
                    console.log('content changed');
                    $originalContent = $this.text();
                    jQuery.event.special.contentchange.handler();
                }
            },500);
        },
        teardown: function(namespaces){
            clearInterval(interval);
        },
        handler: function(namespaces) {
            jQuery.event.handle.apply(this, arguments)
        }
    };

})();

Et lier de cette façon:

$('#container').bind('contentchange', function() {
        console.log('contentchange triggered');
});

- Je obtenir de la console.le journal 'le contenu a changé, mais pas à la console.le journal 'contentchange déclenché". Il est donc évident que le rappel n'est jamais déclenché.

Je viens d'utiliser Firebug pour modifier le contenu et de déclencher l'événement, d'en faire l'essai.

mise à Jour
Je ne pense pas que j'ai fait ce assez clair, mon code ne fonctionne pas réellement. Je suis à la recherche de ce que je fais mal.

Voici le code terminé pour quiconque s'intéresse

(function(){

    var interval;

    jQuery.event.special.contentchange = {
        setup: function(){
            var self = this,
            $this = $(this),
            $originalContent = $this.text();
            interval = setInterval(function(){
                if($originalContent != $this.text()) {
                    $originalContent = $this.text();
                    jQuery.event.handle.call(self, {type:'contentchange'});
                }
            },100);
        },
        teardown: function(){
            clearInterval(interval);
        }
    };

})();

Grâce à Mushex pour m'aider.

source d'informationauteur Sindre Sorhus