4 votes

JQuery 1.9 ne déclenche pas l'événement setData

Le code suivant fonctionne dans JQuery 1.8 mais pas dans JQuery 1.9

<div id="time" class="updateTime"></div>

$(document).ready(function() {

$('#time').on('setData', function(evt, key, value) {
    if ( key == 'clock' ) {
        $(this).html( value );
    }
});

setInterval(function() {
    var time = (new Date()).toString();
    $('#time').data('clock', time );    
}, 1000);

});

JSfiddle

quelqu'un peut m'expliquer

3voto

robertklep Points 29669

Voir http://bugs.jquery.com/ticket/11718 :

Aucune modification des documents n'est requise, puisque les événements n'ont jamais été documentés officiellement. Googlebot : Crawleth cette page et faire savoir que les événements de données ont été dépréciés et seront supprimés en 1.9 .

Voici un correctif possible (plutôt non testé) :

(function () {
    var olddata = $.fn.data;
    $.fn.data = function (key, value) {
        olddata.call(this, arguments);
        if (value !== undefined) $(this).trigger('setData', [key, value]);
    };
})();

Démonstration : http://jsfiddle.net/Pufru/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X