Jquery 单击外部div left将为0px

Jquery 单击外部div left将为0px,jquery,css,Jquery,Css,我使用此代码从右向左显示div。现在,我希望div左侧位置在div外部单击时为0,并带有动画 实时网址:- 您可以尝试添加如下内容: $('body').click(function(ev) { var $target = $(ev.target); var clicked_icon = ($target.hasClass('menu-icon') || $target.closest('.menu-icon').length > 0); var clicked_m

我使用此代码从右向左显示
div
。现在,我希望
div
左侧位置在
div
外部单击
时为0,并带有动画

实时网址:-


您可以尝试添加如下内容:

$('body').click(function(ev) {
    var $target = $(ev.target);
    var clicked_icon = ($target.hasClass('menu-icon') || $target.closest('.menu-icon').length > 0);
    var clicked_menu = ($target.hasClass('main-menu') || $target.closest('.main-menu').lenght > 0);

    if (!clicked_icon && !clicked_menu) {
        $(".main-menu").animate({
            left: '-78%'
         }, 400);
    }
});

这是说:
当用户单击页面而未单击主菜单时,请将菜单向左移动。

您可以尝试添加如下内容:

$('body').click(function(ev) {
    var $target = $(ev.target);
    var clicked_icon = ($target.hasClass('menu-icon') || $target.closest('.menu-icon').length > 0);
    var clicked_menu = ($target.hasClass('main-menu') || $target.closest('.main-menu').lenght > 0);

    if (!clicked_icon && !clicked_menu) {
        $(".main-menu").animate({
            left: '-78%'
         }, 400);
    }
});
这是说:
当用户单击页面而未单击主菜单时,将菜单向左移动。
$('.top title.menu icon')。单击(函数(){
var目标值;
如果($('.main menu').css('left')=“0px”){
targetValue='-78%';
}否则{
targetValue='0px';
}
$(“.main menu”).animate({
左:targetValue
}, 400);
});
$(文档)。在('单击')上,函数(e){
var$target=$(即target);
//如果元素是菜单图标,或者是菜单的子元素,请忽略单击
如果(!$target.is('.menu icon')&&&$target.closest('.main menu')。长度<1){
//不属于图标或菜单,请关闭菜单
$('.main menu').stop().animate({
左:“-78%”
}, 400);
}
});
。顶级标题{
背景色:红色;
}
.菜单图标{
显示:内联块;
最小宽度:36px;
最小高度:36px;
背景色:黑色;
}
.主菜单{
位置:绝对位置;
顶部:36px;
左-78%;
显示:内联块;
最小宽度:78%;
最小高度:100px;
背景颜色:蓝色;
}

Weeee

$('.top title.menu icon')。单击(函数(){
var目标值;
如果($('.main menu').css('left')=“0px”){
targetValue='-78%';
}否则{
targetValue='0px';
}
$(“.main menu”).animate({
左:targetValue
}, 400);
});
$(文档)。在('单击')上,函数(e){
var$target=$(即target);
//如果元素是菜单图标,或者是菜单的子元素,请忽略单击
如果(!$target.is('.menu icon')&&&$target.closest('.main menu')。长度<1){
//不属于图标或菜单,请关闭菜单
$('.main menu').stop().animate({
左:“-78%”
}, 400);
}
});
。顶级标题{
背景色:红色;
}
.菜单图标{
显示:内联块;
最小宽度:36px;
最小高度:36px;
背景色:黑色;
}
.主菜单{
位置:绝对位置;
顶部:36px;
左-78%;
显示:内联块;
最小宽度:78%;
最小高度:100px;
背景颜色:蓝色;
}


Weeee

有什么问题?检查此url。我想在单击此分区外时隐藏主菜单分区。有什么问题?检查此url。我想在这个分区外单击时隐藏主菜单分区。Yep@Taplar,你说得对。只是把它加到我的答案里。谢谢。如果不使用
.stop()
,您将面临动画累积的风险。即:点击身体100次,然后尝试打开菜单。简言之-如果不需要运行动画,请不要运行动画。@rideron89单击菜单图标时请检查此链接,然后它显示,然后再次单击菜单图标,然后它将被隐藏。我想在单击主菜单外的菜单时将其隐藏。@AhsanHabibEmon您应该真正打开控制台并修复这些错误。然后尝试执行建议,如果您有任何进一步的意见,请返回。@AhsanHabibEmon我刚刚更新了它,以便使用您的菜单图标。虽然我建议切换一个类,但rahter比在这里更改CSS更合适。是的@Taplar,你是对的。只是把它加到我的答案里。谢谢。如果不使用
.stop()
,您将面临动画累积的风险。即:点击身体100次,然后尝试打开菜单。简言之-如果不需要运行动画,请不要运行动画。@rideron89单击菜单图标时请检查此链接,然后它显示,然后再次单击菜单图标,然后它将被隐藏。我想在单击主菜单外的菜单时将其隐藏。@AhsanHabibEmon您应该真正打开控制台并修复这些错误。然后尝试执行建议,如果您有任何进一步的意见,请返回。@AhsanHabibEmon我刚刚更新了它,以便使用您的菜单图标。虽然我建议切换一个类,但要比在这里更改CSS好得多。事实上,你的是最好的。事实上,你的是最好的。