Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击内部时隐藏jquery下拉列表_Jquery_Typo3_Dropdownbox - Fatal编程技术网

单击内部时隐藏jquery下拉列表

单击内部时隐藏jquery下拉列表,jquery,typo3,dropdownbox,Jquery,Typo3,Dropdownbox,我是jQuery新手,所以这可能是一个简单的问题,但到目前为止我还没有找到一个好的答案。也许我还没有找到合适的关键字来搜索 我有一个下拉式登录表单。我在打字本3中使用它。 问题是:在loginform中的任何单击都会隐藏/切换drobdownbox。 以下是脚本: <script type="text/javascript"> $(function() { var button = $('#loginButton');

我是jQuery新手,所以这可能是一个简单的问题,但到目前为止我还没有找到一个好的答案。也许我还没有找到合适的关键字来搜索

我有一个下拉式登录表单。我在打字本3中使用它。 问题是:在loginform中的任何单击都会隐藏/切换drobdownbox。 以下是脚本:

<script type="text/javascript">
            $(function() {
                var button = $('#loginButton');
                var box = $('#loginBox');
                var form = $('#loginForm');
                button.removeAttr('href');
                button.mouseup(function(login) {
                    box.slideToggle();
                    button.toggleClass('active');
                });
                form.mouseup(function() {
                    return false;
                    });
                $(document).mouseup(function(login) {
                    if(!($(login.target).parents('#loginButton').length > 0)) {
                        button.removeClass('active');
                        box.hide();
                    }
                });
            });

        </script>  

$(函数(){
var按钮=$(“#登录按钮”);
变量框=$(“#登录框”);
变量形式=$(“#loginForm”);
按钮。removeAttr('href');
按钮。鼠标(功能(登录){
box.slideToggle();
toggleClass('active');
});
form.mouseup(函数(){
返回false;
});
$(文档).mouseup(函数(登录){
if(!($(login.target).parents(“#login按钮”).length>0){
按钮。removeClass(“活动”);
box.hide();
}
});
});
也许有人能帮忙?
提前谢谢

使用类似的方法:

    $('selector').mouseenter(function(){

    //do something when mouse is over
    }).mouseleave(function(){

    //do something when mouse out
    });
从jquery文档中: 当鼠标指针位于某个元素上并且松开鼠标按钮时,mouseup事件将发送到该元素

我猜:你想在这里使用点击事件处理程序吗

button.click(function() {
    box.slideToggle();
    button.toggleClass('active');
});
在这里,您将绑定到typo3站点上发生的所有mouseup事件。 包括那些在loginForm上面的!!所以它会在任何鼠标上隐藏你的形状

$(document).mouseup(function(login) {
    if(!($(login.target).parents('#loginButton').length > 0)) {
        button.removeClass('active');
        box.hide();
    }
});
你可能想试试这个:

$(document).bind("mouseup",function(e){
    console.log(e.target)
})
e、 目标将告诉您鼠标在哪个div上被释放。 您可能需要检查以下内容:

$(document).mouseup(function(login) {
   if(login.target.id == "loginForm"){return false}

    if(!($(login.target).parents('#loginButton').length > 0)) {
        button.removeClass('active');
        box.hide();
    }
});

祝你好运

你能提供一个JSFIDLE吗?嗨,答案很多,所以我对jquery很陌生。我尝试提供一个JSFIDLE(如果它错了,很抱歉,我是第一次!)忘记了链接:那些你在脚本中定义的
id
loginButton、loginBox和loginForm都没有找到。谢谢你的答案。我与extutton.removeClass一起使用('active');box.hide();它是有效的