11548 sujets

JavaScript, DOM et API Web HTML5

Salut!

Je suis actuellement en train de restructurer un gros steak de code et je voulais essayer de modulariser tout ça avec des global event et des namespace sur mes évènements.

Le souci que je rencontre est que visiblement, les namespace ne semblent pas pris en compte sur les événements déclenchés via $.event.trigger.

Un morceau de code en guise de test :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html lang="fr">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Test Global event</title>
</head>

<body><div id="main">


    <div id="test">Du texte</div>
    <button id="trigger">CLICK</button>


    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
    <script type="text/javascript">
$(function() {
    var test = $("#test"),
        trigger = $("#trigger");


    test.bind('custom.namespace', function(e) {
        console.log('Custom - ' + e.namespace)
    })

    test.bind('custom.namespace2', function(e) {
        console.log('Custom - ' + e.namespace)
    })

    trigger.click(function() {
        //Doit déclencher custom quelque soit le namespace -> OK
        console.log('Trigger de custom via click')
        test.trigger('custom');

        //Doit déclencher custom uniquement pour le namespace "namespace" -> Pas OK
        console.log('Trigger de custom.namespace via click')
        test.trigger('custom.namespace');
    });


    //Doit déclencher custom quelque soit le namespace -> OK
    console.log('Trigger de custom')
    jQuery.event.trigger('custom');

    //Doit déclencher custom uniquement pour le namespace "namespace" -> Pas OK
    console.log('Trigger de custom.namespace')
    jQuery.event.trigger('custom.namespace');
})
    </script>
<div></body>
</html>
également visible en action sur ce jsFiddle.

Comme ce sont des fonctionnalités peu ou mal documentées, j'ai du mal à trouver des infos précisant si le comportement est normal ou pas.
Donc si quelqu'un à des infos, d'avance merci! Smiley biggrin
Modifié par Florian_R (15 Sep 2011 - 16:09)