Meine Website hat Login-System. Wenn menu
geklickt wird und der Benutzer nicht angemeldet ist, wird showpopup()
Funktion aufgerufen und es wird ein Anmeldeformular angezeigt.Toggle-Menü funktioniert nicht JQuery
Wenn menu
geklickt wird und der Benutzer ist angemeldet, es dropdown
zeigen und afterlogin()
aufgerufen.
die Sache ist, möchte ich dropdown
umschalten, wenn menu
geklickt wird. Aber einmal dropdown
ist offen, kann ich dropdown
NUR schließen, wenn ich außerhalb von entweder dropdown
oder dropdownA
klicke.
Wie kann ich dropdown
umschalten/schließen, indem ich auf menu
klicke?
index.php
<div id="menu">Menu</div>
<div id="dropdown"> //this drop down is hidden
<a href="#" id="a">A</a>
</div>
<div id="dropdownA"> //this drop down is also hidden
<p>Hello</p>
</div>
login.php
<?php
ob_start();
session_start();
include_once('database.php');
if(isset($_SESSION['username'])){
echo '1';
return false;
}
if (!(isset($_SESSION['username']))){
echo '0';
return false;
}
ob_end_flush();
?>
script.js
$('#menu').click(function (e) {
e.preventDefault();
e.stopPropagation();
$.post("login.php", function(data) {
if(data == "1"){
afterLogin();
return false;
} else if(data == "0"){
showpopup();
return false;
}
});
});
function showpopup()
{//sign up form
$("#signupForm").fadeIn();
$("#signupForm").css({"visibility":"visible","display":"block"});
}
function afterLogin() {
$('#menu').on('click', function() {
$("#dropdown").show(function(){
document.body.addEventListener('click', boxCloser, false);
});
});
$("#a").click(function() {
$("#dropdownA").toggle();
});
function boxCloser(e){
if(!$(e.target).closest('#dropdown, #dropdownA').length){
document.body.removeEventListener('click', boxCloser, false);
$('#dropdown, #dropdownA').hide();
}
}
}
ist 'Funktion (Daten) {}). Done (function (data) {' dieses Format ein richtiges Format? Ich änderte meinen Code entsprechend Ihrem und jetzt zeigt es nicht ein "Dropdown" Menü. es aktualisiert nur die Seite. –
haben Sie docs... haben in der Antwort verbunden? –
ich tat gerade und Ich verstehe jetzt, dass .done () ist für den Erfolg. Aber es aktualisiert die Seite immer noch, wenn ich auf "Menü" klicke. Es ruft nicht 'showpopup()' oder 'afterlogin()' auf. Wenn ich '.done()' verwende, wird die Seite aktualisiert und nichts getan –