繁体   English   中英

切换菜单不工作JQuery

[英]toggle menu not working JQuery

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

单击menu并且用户已登录时,将显示dropdown并将调用afterlogin()

事情是,我想切换dropdownmenu点击。 但是一旦dropdown打开,我只能在dropdowndropdownA外单击时关闭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中只返回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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM