2012-08-31 24 views
6

Estoy usando twitter-bootstrap para desarrollar una aplicación web que pueda representarse en varios dispositivos.Uso de eventos tap con Twitter Bootstrap

Ahora me gustaría manejar el evento 'tap'. Entonces mi pregunta aquí es:

  1. ¿Puedo manejar el evento 'tap' usando jquery 1.7.2 sin usar jqueryMobile?
  2. Si la respuesta a la pregunta anterior es un no, entonces ¿cómo puedo integrar jqueryMobile con twitter-bootstrap? Porque traté de incluir el jQueryMobile js en mi página de Twitter bootstrap y cuando lo uso, ¡la página se rompe!
+0

¿Puedes publicar tu código roto? – cspolton

Respuesta

5

El grifo evento es un evento jQuery Mobile y no es un hecho real HTML5 que tiene una especificación. HTML5 specifies touch events, que son supported on Android and iOS, y Twitter Bootstrap ya utiliza esos eventos en algunos de sus complementos.

Sin embargo, siguiendo una noción de sentido común de lo que podría ser un evento tap, uno podría activarlos fácilmente en función de una secuencia de eventos táctiles. Aquí hay una oportunidad:

// listen for a touchstart event 
$('body').on('touchstart.tap',function (e) { 

    // listen for a touchend event 
    $(e.target).one('touchend.tap',function() { 
    $(e.target).trigger('tap'); 
    }); 

    // cancel it in 150ms 
    setTimeout(function() { 
    $(e.target).off('touchend.tap'); 
    },150); 
}); 

Esto activará un eventodel grifo si un touchend sigue un touchstart dentro de 150 ms (que se puede ajustar, por supuesto). Puede intentar usar esto en lugar de incluir jQuery mobile si un evento toque es todo lo que está buscando.