JQuery - Problema con evento duplicado

 
Vista:
sin imagen de perfil

Problema con evento duplicado

Publicado por Juan (1 intervención) el 08/11/2015 02:46:54
Hola

Estoy desarrollando una APP con Cordova y jQuery & jQueryMobile

Muestro parte del codigo (listview) que me genera problemas, y la imagen adjunta que representa esta parte

1
2
3
4
5
6
7
8
9
10
11
12
<li id='blablabla' class='liPar'>
  <div class='viaje'>
    <span class='hora'>06:50 blablabla</span> Hs. -
    <span class='parada'>bla bla bla</span></br>
    <span class='circ'>bla bla bla</span>
  </div>
  <div data-role='controlgroup' data-type='horizontal' class='botonera hide'>
    <div class='sprite btnHorario'></div>
    <div class='sprite btnParada'></div>
    <div class='sprite btnCancelar'></div>
  </div>
</li>

Tengo tambien este JS

1
2
3
4
$('document).on('tap', '#datos_mv li .viaje', function(e) {
  $('.botonera').hide();
  $(e.target).parents('li').children('.botonera').show();
})

Como este codigo es de un ListView que repite varias veces el codigo HTML mostrado, la idea mia es que la ".botonera" (compuesta por 3 botones/imagenes), aparezca solo cuando le hago click/tap al DIV ( .viaje)

Eso lo logro, perfectamente con el codigo JS que muestro. En cada click, primero escondo todas las ".botoneras", y luego muestra la correspondiente al DIV tocado.

El problema que tengo es que cuando hago click sobre el DIV, y exactamente bajo mi dedo, aparece uno de los botones de la ".botonera" tambien me genera el evento click sobre ese boton .

Y no logro evitar este segundo y accidental evento.

¿Alguien me podra dar alguna pista?

Gracias
app.1
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 302
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

Problema con evento duplicado

Publicado por xve (673 intervenciones) el 08/11/2015 21:11:07
Hola Juan, fijate que tienes un error en el js... tienes una comilla que sobra...

En vez de:
1
$('document).on('tap', '#datos_mv li .viaje', function(e) {
tiene que ser:
1
$(document).on('tap', '#datos_mv li .viaje', function(e) {

Esto soluciona tu problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar