2010-02-02 4 views
0

je le code suivant:jquery, déclencheur, bind, paramètre étrange

<body> 
    <form> 
     <input type="text"/> 
    </form> 

    <script> 

     $(function() { 

      $(document).bind("EVENT", function (event, element) { 
       console.log("BIND", element, event); 
      }); 

      $("form").each(function iterate(index, element) { 

       console.log("BEFORE BIND", element); 
       $(document).trigger("EVENT", element) 
      }); 
     }) 
    </script> 
</body> 

Je pense que l'élément que je passe à la TRIGGER est le même que je reçois au BIND mais pas

BIND AVANT: c'est la forme, comme il est prévu

BIND: c'est la zone d'entrée, aucune idée pourquoi

est un bug ou je raté quelque chose?

mieux, Viktor

Répondre

0

Le jQuery trigger documentation dit que les paramètres supplémentaires doivent être passés dans un tableau. Donc:

$(document).trigger("EVENT", [ element ]) 
+0

thx, si je le passe comme un tableau cela fonctionne – Viktor

1

Si je comprends bien votre question cela devrait être ce que vous cherchez:

$(function() { 
    $(document).bind("EVENT", function (e) { 
     console.log('bind', 
        e.target // this is the DOM element that triggered the event 
          // the form in this case 
        e); 
    }); 

    // Triggering can be simplified a lot 
    $('form').trigger('EVENT'); 

}); 
+0

désolé, je n'étais pas clair, je me demandais si je passe un paramètre à la fonction de déclenchement pourquoi je ne récupère pas la même chose dans la liaison. – Viktor