切换菜单不工作JQuery

时间:2017-01-29 01:39:45

标签: javascript php jquery drop-down-menu toggle

我的网站有登录系统。单击menu并且用户未登录时,将调用showpopup()函数并显示注册表单。

点击menu并且用户登录后,系统会显示dropdown,并会调用afterlogin()

问题是,我想在点击dropdown时切换menu。但一旦dropdown打开,我只能在dropdowndropdown之外点击时关闭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();
      } 

    }
}

1 个答案:

答案 0 :(得分:0)

尝试这样。通过$.post()完成方法调用函数。

$.post("login.php", function(data) {
    }).done(function(data){
        if(data === true){
            afterLogin();

        } else if(data === false){
            showpopup();

        }
    });

在PHP中,只需返回truefalse ..

<?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/