【发布时间】:2017-01-29 01:39:44
【问题描述】:
我的网站有登录系统。当menu被点击且用户未登录时,showpopup()函数将被调用并显示一个注册表单。
当menu被点击并且用户登录时,它将显示dropdown和afterlogin()将被调用。
问题是,我想在点击menu 时切换dropdown。但是一旦dropdown 打开,我只能在dropdown 或dropdownA 之外单击时关闭dropdown。
如何通过单击menu 来切换/关闭dropdown?
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();
}
}
}
【问题讨论】:
标签: javascript php jquery drop-down-menu toggle