2016-07-21 4 views
0

ich ein Layout, wo auf einem Klick auf eine Schaltfläche ein Feld und auf Klick auf den gleichen Link soll die Box verschwindetPopup-Fenster in Bootstrap nicht einwandfrei funktionieren

Mein vollständiger Code ist hier bei JS Fiddle

erscheinen soll

Das Problem ist, dass nach dem Öffnen der Box auf einen Klick auf einen Link, ich ändern Sie den Inhalt darin durch Klicken auf Login/registrieren, danach kann ich die Box nicht durch erneutes Klicken auf den Hauptlink, kann jemand sagen wie es geht

HTML CODE

<a href="#" class="login" data-toggle="dropdown" data-target="#demo"><b>Main Link</b> <span class="caret"></span></a> 
    <div id="demo" class="dropdown"> 
     <ul id="loginbtn" class="dropdown-menu"> 
      <li> 
       <form> 
        Login form 
       </form> 
       <a href="#" id="register">Register</a> 
      </li> 
     </ul> 

     <ul id="signupbtn" class="dropdown-menu"> 
      <li> 
       <form> 
        Register form 
       </form> 

       <a href="#" id="login">Login</a>   
      </li> 
     </ul> 
    </div> 

CSS

#signupbtn 
{ 
    display:none; 
} 

SCRIPT

$(document).ready(function(){ 
     $("#register").click(function(e){ 
      e.preventDefault(); 
      $('#loginbtn').hide(); 
      $('#signupbtn').show(); 
      return false; 
     }); 
    }); 

    $(document).ready(function(){ 
     $("#login").click(function(e){ 
      e.preventDefault(); 
      $('#loginbtn').show(); 
      $('#signupbtn').hide(); 
      return false; 
     }); 
    }); 
+2

Ihre JsFiddle für mich funktioniert gut –

+0

ich mit Chrome bin, wenn Dropdown ist offen und klickt auf reg ister zu swicth Dropdown-Menü, kann ich es nicht schließen, wenn ich auch draußen klicke. – pbenard

+0

@Pirate X es funktioniert nur einmal, aber ich klicke in die Box, dann wird es nicht geschlossen – sammy001

Antwort

0

Eine Möglichkeit sollte stattdessen mit dem Einsatz von versteckter Klasse sein.

JsFiddle: https://jsfiddle.net/p1a0v6kj/

HTML:

<a href="#" class="login" data-toggle="dropdown" data-target="#demo"><b>Login</b> <span class="caret"></span></a> 
    <div id="demo" class="dropdown"> 
     <ul id="loginbtn" class="dropdown-menu"> 
      <li> 
       <form> 
        Login form 
       </form> 
       <a href="#" id="register">Register</a> 
      </li> 
     </ul> 

     <ul id="signupbtn" class="dropdown-menu hidden"> 
      <li> 
       <form> 
        Register form 
       </form> 

       <a href="#" id="login">Login</a>   
      </li> 
     </ul> 
    </div> 

Js:

$(document).ready(function(){ 
     $("#register").click(function(e){ 
      e.preventDefault(); 
      $('#loginbtn').addClass('hidden'); 
      $('#signupbtn').removeClass('hidden'); 
      return false; 
     }); 
    }); 

    $(document).ready(function(){ 
     $("#login").click(function(e){ 
      e.preventDefault(); 
      $('#loginbtn').removeClass('hidden'); 
      $('#signupbtn').addClass('hidden'); 
      return false; 
     }); 
    }); 
+0

Jetzt ist die Box Clossing aber hat ein anderes Problem verursacht, zum ersten Mal, wenn ich auf den Link der CSS innerhalb der Box klicken gestört werden. dh zum ersten Mal sind die beiden Layouts sichtbar und überlappen einander, und das zweite Formular wird oben angezeigt und das erste Formular befindet sich im Hintergrund. – sammy001

+0

id = "signupbtn" muss Klasse bei init versteckt haben – pbenard

+0

Funktioniert mit versteckte Klasse bei init? – pbenard

Verwandte Themen