2017-01-24 11 views
0

У меня есть выпадающее меню, которое показывает нижеприведенный скрипт JQuery:JQuery скрыть выпадающее меню

jQuery(document).ready(function($) { 
    $('#block-mln-main-menu li').click(function(){ 
     $(this).find('.test').toggle(); 
    }); 
}); 

То, что я хочу достичь, когда пользователь щелкает в другом месте на странице, он скользит вверх или шкуры. Я буквально не понимаю, как это сделать.

Любая помощь очень ценится.

добавил скрипку: http://jsfiddle.net/aL7Xe/999/

+1

ONBLUR пожаров событий, когда элемент теряет фокус. –

ответ

0

Yoy может попытаться остановить событие распространения.

CSS:

.showup{width:100px;height:100px; background:red; display:none;} 
.click{cursor:pointer;} 

HTML

<div class="click">click me</div> 
<div class="showup">Click somewhere else!</div> 

Jquery

$(document).ready(function(){ 
$('.click').click(function(event){ 
    event.stopPropagation(); 
    $(".showup").slideToggle("fast"); 
}); 
$(".showup").on("click", function (event) { 
    event.stopPropagation(); 
}); 
}); 

$(document).on("click", function() { 
    $(".showup").hide(); 
}); 
+0

Не могли бы вы показать мне, что вы имеете в виду в этой скрипке? http://jsfiddle.net/aL7Xe/999/ – Blomkfist174

+0

Что-то вроде этого http://jsfiddle.net/aL7Xe/1010/ Вам просто нужно дублировать одно и то же поведение для каждого подменю, которое у вас есть в вашем рабочем меню. –

+0

Отлично! Я это проверю. – Blomkfist174

0

Переключение будет работать только его пользователь нажимает на тот же объект, что вы хотите, чтобы скрыть его, когда щелчок в другом месте попробовать

jQuery(document).ready(function($) { 
    $(this).not('#block-mln-main-menu li').click(function(){ 
     $(this).find('.test').hide(); 
    }); 
}); 
+0

На самом деле это не то, что я имел в виду, мне нужно, чтобы раскрывающийся список расширялся, когда пользователь нажимает на него, и он должен закрываться, когда пользователь нажимает на него снова или когда пользователь нажимает на выпадающее меню – Blomkfist174

2

Я понимаю, что вы хотите показать выпадающее меню, когда пользователь нажимает на него. Если пользователь снова нажимает на него или где-либо на странице, он должен закрыть.

CSS

.hide { 
    display: none; 
} 

JS

$('.menu-label').on('click', function() { 
    $('.drop-down-menu').toggleClass('hide'); 
}); 

Чтобы скрыть меню, когда пользователь нажимает в любом месте на странице

$('body').on('click', function() { 
    $('.drop-down-menu').addClass('hide'); 
}); 
+0

Это именно то, что мне нужно , но после 1 часа попытки он все еще не работает. Не могли бы вы создать скрипку, чтобы я мог понять лучше? – Blomkfist174

+0

Я создал это на [codepen] (http://codepen.io/vaibhaviiit/pen/yYbPez). Для любой помощи пинг здесь. –

+0

Я сделал некоторые изменения на вашем коде, проверьте это http://jsfiddle.net/fryy0kve/3/ –