| Autor | Zpráva | ||
|---|---|---|---|
| LenkaJR Profil * |
#1 · Zasláno: 11. 1. 2012, 20:56:44
ahoj,
mám vysouvací nabídku přes tento kód: <script type="text/javascript">
$(document).ready(function(){
$('#menuodkaz').toggle(function(e){
e.preventDefault();
$('#menu').fadeIn(300);
}, function(e){
e.preventDefault();
$('#menu').fadeOut(300);
})
});
</script>Po kliknutí na div "menuodkaz" vyjede nabídka v divu "menu". Nabídka lze zavřít pouze opětovným kliknutím na "menuodkaz". Potřeboval bych ale udělat, aby se "menu" zavřelo ikdyž kliknu kdekoliv mimo. dík Lenka |
||
| Suta Profil |
#2 · Zasláno: 11. 1. 2012, 22:57:18 · Upravil/a: Suta
Zkus takto (metoda contains vrací true, pokud je element uvnitř jiného elementu). Po otevření menu tedy navážeš událost mousedown na dokument a kontroluješ, jestli je target, na nějž bylo kliknuto, uvnitř tvého menu (nebo se jedná o menu samotné). Pokud není, bylo kliknuto mimo menu a můžeš jej skrýt. Mousedown můžeš vyměnit za click.
<script type="text/javascript">
$(document).ready(function(){
$('#menuodkaz').toggle(function(e){
e.preventDefault();
$('#menu').fadeIn(300);
$(document.on("mousedown.vysouvaciNabidka", function(e){
if(!($.contains(document.getElementById("menu"),e.target) ||
document.getElementById("menu") == e.target)) {
$('#menu').fadeOut(300);
$(document.off("mousedown.vysouvaciNabidka");
}
}
}, function(e){
e.preventDefault();
$('#menu').fadeOut(300);
})
});
</script> |
||
|
Časová prodleva: 15 let
|
|||
0