2017-01-24 2 views
0

Ich habe ein Drop-Down-Menü, das mit dem folgenden jQuery-Skript zeigt:jQuery ausgeblendet Dropdown-Menü

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

Was ich erreichen möchte ist, wenn der Benutzer irgendwo sonst auf der Seite klickt, es gleitet nach oben oder versteckt. Ich bin buchstäblich ratlos, wie ich das erreichen kann.

Jede Hilfe wird sehr geschätzt.

hinzugefügt, um eine Geige: http://jsfiddle.net/aL7Xe/999/

+1

onblur Ereignis ausgelöst wird, wenn ein Element den Fokus verliert. –

Antwort

0

Yoy versuchen Ausbreitungsereignis stoppen.

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

Kannst du mir zeigen, was du in dieser Geige meinst? http://jsfiddle.net/aL7Xe/999/ – Blomkfist174

+0

So etwas wie dieses http://jsfiddle.net/aL7Xe/1010/ Sie müssen nur das gleiche Verhalten für jedes Untermenü, das Sie in Ihrem Produktionsmenü haben duplizieren. –

+0

Großartig! Ich werde es mir ansehen. – Blomkfist174

0

Toggle wird es nur auf dem gleichen Objekt Benutzer klicken Sie arbeiten, um es Ihnen, es verbergen wollen, wenn an anderer Stelle klicken

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

Dies ist nicht wirklich, was ich meinte, ich brauche das Dropdown-Menü zu erweitern, wenn der Benutzer darauf klickt und es sollte geschlossen werden, wenn der Benutzer erneut darauf klickt oder wenn der Benutzer außerhalb des Dropdown-Menüs klickt – Blomkfist174

2

versuchen Was ich verstehe, ist, dass Sie zeigen wollen Dropdown-Menü, wenn ein Benutzer darauf klickt. Wenn der Benutzer erneut darauf klickt oder irgendwo auf der Seite, sollte es geschlossen werden.

CSS

.hide { 
    display: none; 
} 

JS

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

das Menü auszublenden, wenn Benutzer klicken Sie irgendwo auf Seite

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

Das ist genau das, was ich brauche , aber nach 1 Stunde versucht es immer noch nicht. Könntest du vielleicht eine Geige schaffen, damit ich es besser verstehen kann? – Blomkfist174

+0

Ich habe dies auf [Codepen] (http://codepen.io/vaibhaviiit/pen/yYbPez) erstellt. Für jede Hilfe ping hier. –

+0

Ich habe einige Änderungen an Ihrem Code vorgenommen, überprüfen Sie diese http://jsfiddle.net/fryy0kve/3/ –

Verwandte Themen