我的网站有登录系统。单击menu
并且用户未登录时,将调用showpopup()
函数并显示注册表单。
点击menu
并且用户登录后,系统会显示dropdown
,并会调用afterlogin()
。
问题是,我想在点击dropdown
时切换menu
。但一旦dropdown
打开,我只能在dropdown
或dropdown
之外点击时关闭dropdownA
。
如何点击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();
}
}
}
答案 0 :(得分:0)
尝试这样。通过$.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/