2012-08-30 77 views
15

Parece que incluso el bootstrap demo here no funciona en iOS. Parece que no puedes seleccionar un elemento en iPhone o iPad.¿Por qué el menú desplegable botón Bootstrap no funciona en iOS?

¿Hay una solución para esto?

+2

La demostración de arranque que menciona funciona en mi iPhone. ¿Puedes publicar algún código para que podamos ver cuál es tu problema? –

+0

Gracias @WesleyMurch por volver a publicar eso para mí. Me disculpo por el uso incorrecto de una respuesta, sigue siendo un novato aquí. –

+2

Parece que hay un error en la versión 2.1.1: https://github.com/twitter/bootstrap/issues/4550 – fguillen

Respuesta

0

es necesario agregar un jQuery Personalizar en su file.If desea utilizar que utilice:

<div class="container"> 
    <div class="btn-group lt category_bg"> 
    <p>Adults</p> 
    <button class="btn btn-large" data-toggle="dropdown"><cite>0</cite> <span class="caret"></span></button> 
    <ul class="dropdown-menu "> 
     <li id='adult_0' onClick="flight_user(this.id)"><a href="#" >0</a></li> 
     <li id='adult_1' onClick="flight_user(this.id)"><a href="#" >1</a></li> 
     <li id='adult_2' onClick="flight_user(this.id)"><a href="#" >2</a> </li> 
     <li id='adult_3' onClick="flight_user(this.id)"><a href="#">3</a></li> 
     <li id='adult_4' onClick="flight_user(this.id)"><a href="#">4</a></li> 
    </ul> 
    </div> 

</div> 
<script src="js/jquery.js"></script> 
<script src="js/bootstrap-dropdown.js"></script> 


<script> 
    function flight_user(selected){ 
    var value = jQuery("#" + selected).find('a').text(); 
    jQuery("#" + selected).parent().parent().find('cite').html(value); 
    } 

</script> 

que yo pueda darle vivir demostración de esto si desea

+0

actully bootstrap solo se ha dado el menú desplegable, no el menú desplegable seleccionable. También me enfrento al mismo problema, pero no lo conseguí solución, así que lo hice de esta manera – supersaiyan

+0

Esa respuesta no suena bien. Tengo eventos adjuntos a las etiquetas de anclaje y funcionan en el escritorio. Está sugiriendo configurar controladores de eventos adicionales para enumerar elementos. ¿Sabes por qué? – Roman

+0

veo que lo hice de esta manera, así que te doy la respuesta. Si encontraste una manera mejor, entonces es muy bueno. Publica la respuesta si resuelves eso que podría ser mejor para mí :-) – supersaiyan

9

Hay una rápida fix como se observa en muchos de los comentarios de emisión en gitHub: https://github.com/twitter/bootstrap/issues/2975#issuecomment-8670606

añadir este script justo antes de la etiqueta html cerca:

$('body').on('touchstart.dropdown', '.dropdown-menu', function (e) { 
    e.stopPropagation(); 
}); 

He probado el método anterior tanto en IOS5 y 6. Funciona como un encanto


Si se desea modificar el sistema de arranque javascript que podría, en lugar de la revisión anterior, retire touchstart.dropdown. data-api del enlace html para clearMenus cerca de la parte inferior del archivo.

acaba de cambiar esta

$('html') 
    .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus) 

a este

$('html') 
    .on('click.dropdown.data-api', clearMenus) 
+1

¡Esto funcionó como un encanto! Gracias – man2xxl

+1

¿Sigue siendo así? – light24bulbs

+2

Todavía estoy enfrentando este problema en iOS 7. Estoy usando Bootstrap 3.3.4 y jQuery 1.11.3. ¿Alguna idea de cómo resolverlo? – Lucy

0

Este script resolver este problema. Simplemente agregue este código

$(document).on('click', 'a.your-drop-down-link', function(event){ 
      event.stopPropagation(); 
      event.preventDefault(); 
      if(event.handled !== true) { 

       if ($(this).parent().hasClass('open')) { 
        $(this).parent().removeClass('open'); 
       }else{ 
        $(this).parent().addClass('open'); 
       } 

       event.handled = true; 
      } else { 
       return false; 
      } 
     }); 
+1

Para una buena respuesta, sería bueno agregar alguna explicación de lo que hace el código. –

Cuestiones relacionadas