2012-05-18 9 views
7

En Metor 0.3.5, cuando todos los eventos fueron eventos de jQuery, yo era capaz de utilizar el uso jQuery UI Draggable y luego manejar el drag & dragstop events utilizando un Metor event map:¿Cómo manejar eventos jQuery personalizados en Meteor?

Template.game.events['dragstop .card'] = function (e) { 
    //stuff 
}; 

Pero acabo de leer esto en la lista de correo de meteoros:

en 0.3.6, mapas caso ya no dependen de jQuery

y por supuesto, la técnica anterior ya no parece funcionar – mi controlador dragstop no se llama en absoluto ahora.

Agradecería mucho cualquier consejo sobre cómo lograr el mismo efecto en 0.3.6.

+0

todavía estoy en 0.3.5, pero tienen el mismo problema. No hay noticias todavía? –

+0

Aún no tenemos una historia para arrastrar y soltar ni para interoperar con los complementos de la interfaz de usuario de jQuery, ¡pero lo investigaremos! Una solución podría ser enlazar al oyente utilizando jQuery en lugar de un mapa de eventos. – dgreensp

+0

@dgreensp ¿Hay alguna desventaja al omitir los mapas de eventos (además de tener que conectar manualmente los oyentes con la función jQuery ['on'] (http://api.jquery.com/on/))? – Emmett

Respuesta

3

eventos jQuery personalizada se pueden enlazar con el viejo y simple jQuery, sin pasar por event maps completo:

$(function() { 
    $('body').on('dragstop', '.card', function (e) { 
     //stuff 
    }); 
}); 

Recuerde que debe utilizar la función de jQuery on para unir los manipuladores, ya que los elementos de la plantilla no están necesariamente incluidos en el DOM en todo momento .

+2

¿No funciona '.on' para elementos de DOM no existentes justo cuando está enlazado en' document'? Entonces '$ (documento) .on (eventos, selector, devolución de llamada)'? ¿Te gusta '.live' en la API jQuery anterior? – Mitar

5

Hoy en día, sólo tiene que utilizar los eventos del cuerpo para lograr esto el camino "Meteor":

Template.body.events({ 
    'dragstop #somedivid': function(e) { 
     // Do stuff 
    } 
}); 
+0

¡Muchas gracias! – Vinod

+0

Y no puedo hacer que esto funcione por alguna razón. ¿Sigue siendo una respuesta válida? – Billybobbonnet

+0

Sí, funciona a partir de Meteor 1.2. ¿Qué problema tienes? – occasl

Cuestiones relacionadas