2012-07-02 14 views
5

Estoy tratando de averiguar cómo puedo establecer argumentos para eventos personalizados. Cómo puedo establecer un argumento cuando me suscribo al evento y luego agregar algunos datos adicionales cuando disparo el evento.jQuery datos de eventos personalizados (suscribir y desencadenar)

Tengo un JS simple para probar, pero en el parámetro e de "manejar" solo veo datos de suscripción.

function handle(e) { 
    //e.data has only "b" 
    alert(e.data); 
} 

function myObj() { 
    this.raise = function() { 
      //Trigger 
     $(this).trigger("custom", { a: "a" }); 
    } 
} 

var inst = new myObj(); 
//Subscribe 
$(inst).bind("custom", { b: "b" }, handle); 
inst.raise(); 

Gracias.

+0

Solo una sugerencia. Alertar aquí le dará '' '[object Object] también [object Object]' ''. El uso de '' 'console.log (e.data, 'also', triggerParam)' '' le mostrará los objetos reales en la consola de su navegador; – PHearst

Respuesta

5

Los parámetros suministrados a .trigger() se pasan como el segundo parámetro de la función del controlador de eventos.

function handle(e, triggerParam) { 
    //e.data has only "b" 
    alert(e.data + ' also ' + triggerParam); 
} 
+0

Ah, gracias :) Me perdí eso en los tutoriales de jQuery ... Gracias de nuevo :) –

Cuestiones relacionadas