Мой сайт имеет систему входа в систему. Когда нажата кнопка menu
, и пользователь не войдет в систему, будет вызываться функция showpopup()
, и она отобразит форму для регистрации.Меню переключения не работает JQuery
Когда 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();
}
}
}
является 'функция (данные) {}). Done (функция (данные) {' этот формат в правильном формате? Я изменил свой код в соответствии с вашим, и теперь он не показывает меню «выпадающего меню», оно только обновляет страницу. –
вы видели, как docs..i связались в ответе? –
Я просто сделал и Теперь я понимаю, что .done () для успеха. Но он все еще обновляет страницу всякий раз, когда я нажимаю «меню». он не вызывает 'showpopup()' или 'afterlogin()'. Поэтому, если я использую '.done()', он обновляет страницу и ничего не делает –