[英]toggle menu not working JQuery
我的网站有登录系统。 单击menu
并且用户未登录时,将调用showpopup()
函数并显示注册表单。
单击menu
并且用户已登录时,将显示dropdown
并将调用afterlogin()
。
事情是,我想切换dropdown
时menu
点击。 但是一旦dropdown
打开,我只能在dropdown
或dropdownA
外单击时关闭dropdown
dropdownA
。
如何通过单击menu
切换/关闭dropdown
menu
?
的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();
}
}
}
尝试这样。调用函数形成$.post()
完成方法。
$.post("login.php", function(data) {
}).done(function(data){
if(data === true){
afterLogin();
} else if(data === false){
showpopup();
}
});
而在PHP中只返回true
或false
..
<?php
ob_start();
session_start();
include_once('database.php');
if(isset($_SESSION['username'])){
echo true;
}
if (!(isset($_SESSION['username']))){
echo false;
}
ob_end_flush();
?>
有关更多信息,请参阅文档https://api.jquery.com/jquery.post/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.