2012-08-03 27 views
6

Tengo este menú desplegable de bootstrap twitter. Reemplacé el evento click con el evento hover. Ahora se supone que el único problema es seguir a www.google.com pero no es así. Intenté con:Dropdown de Bootstrap Twitter: hacer que el padre siga el enlace

jQuery(".nav .dropdown-toggle").click(function() { 
     return true; 
    }); 

pero no dice ningún dado.

Aquí está el código:

<html> 
    <head> 
    <title>text</title> 
    <link type="text/css" rel="stylesheet" href="docs/assets/css/bootstrap.css"/> 
    <link type="text/css" rel="stylesheet" href="docs/assets/css/bootstrap-responsive.css"/> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <script type="text/javascript" src="js/bootstrap-dropdown.js"></script> 
    <script type="text/javascript"> 
     $(function(){ 
     jQuery('.dropdown-toggle').dropdown(); 
     jQuery('ul.nav li.dropdown').hover(
     function() {jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn();}, 
     function() {jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut();} 
    ); 

     jQuery(".nav .dropdown-toggle").click(function() { 
      return true; 
     }); 
     }); 
    </script> 

    </head> 
    <body> 
    <ul class="nav nav-pills"> 
     <li class="dropdown"> 
     <a class="dropdown-toggle" data-toggle="dropdown" data-target="#" href="http://www.google.com"> 
      Dropdown 
      <b class="caret"></b> 
     </a> 
     <ul class="dropdown-menu"> 
      <li><a href="#">text</a></li> 
      <li><a href="#">text</a></li> 
     </ul> 
     </li> 
    </ul> 

    </body> 
</html> 

http://jsfiddle.net/rgdwM/

Respuesta

2
No

realmente muy seguro de lo que está tratando de lograr aquí.

Pero esto haría que el .click() lo lleve a google.

$(".nav .dropdown-toggle").click(function() { 
    window.location = "http://www.google.com"; 
}); 

cuanto a por qué se come el evento <a> clic Actualmente no estoy seguro.

+0

Bueno, no realmente como este, ya que necesito utilizar dinámicamente valores, pero me di cuenta de alguna manera sobre la base de su sugerencia. Gracias – Faraderegele

+1

Supongo que acaba de establecer 'window.location = $ (" # element "). Href()' más o menos. Bueno, al menos lo tienes funcionando! – Sphvn

+1

Simplemente 'window.location = this.href' es suficiente. –

16

Puede lograr esto sin JavaScript cambiando un poco el marcado y agregando una clase de CSS.

Cambiar el formato HTML para (** nota se añade al ladodiscapacitados a desplegables-conmutación): **

<a class="dropdown-toggle disabled" data-toggle="dropdown" data-target="#" href="http://www.google.com"> 
    Dropdown 
    <b class="caret"></b> 
</a> 

Si desea que aparezca el submenú en vuelo estacionario (ya que al hacer clic voluntad ahora ve a la URL especificada), agregar esta clase CSS:

.nav li.dropdown:hover .dropdown-menu 
{ 
    display: block;  
} 

esto se aplica para arrancar la versión 2.3.1.

+0

¡Impresionante! Su respuesta debe ser aceptada en lugar de la que está en la parte superior. Esto es exactamente lo que necesitaba. –

+0

+1 para data-target = "" – Flowpoke

2

Si desea que la matriz de seguir el enlace en Wordpress usar esto:

$(".nav .dropdown-toggle").click(function() { 
    window.location = $(this).attr('href'); 
    }); 
0

Bootstrap 3.0 docs decir utilizar el atributo data-target para preservar hacer clic en enlaces.

Por lo tanto, el código HTML se convertiría en:

<a class="dropdown-toggle" data-toggle="dropdown" data-target="http://www.google.com" href="#"> 
    Dropdown 
    <b class="caret"></b> 
</a> 
Cuestiones relacionadas