Hogyan tudom jqueryben ellenőrizni egy elem láthatóságát?
Van egy második szintű listapontom egy menüben (ul li ul li). Azt akarom megcsinálni, hogyha le akarom nyitni a menüt, akkor csak az ul li div-vel lehessen, a div egy üres div csak azért van ott, hogy másik ul li-vel ne lehessen a menüt lenyitni, csak azzal. A slide down működik, de az up nem. Tehát azt akarom, hogyha el van tűnve a második szintű menüpont, akkor csak az ul li div-vel lehessen lenyitni, ha viszont elő van bújva, akkor bárhova kattintok, becsukódjon.
Ehhez viszont az kell, hogy ellenőrizzem, hogy előbújt-e a menüpont, avagy sem.
Köszi a segítséget előre is!
$(document).ready(function() {
if ($('ul li ul li').is(":hidden")){
$("ul li div").click(function() {
$("ul li ul li").slideDown();
});
}
else {
$("body").click(function() {
$("ul li ul li").slideUp();
});
}
});
"display propertyvel mi a helyzet? (netán egy flag?)"
Őszintén nem tudom. Most ez válasz volt?
Igen, válasz volt, bár nem túl disztingvált. Erre gondolt:
if ($('ul li ul li').css("display") != "none"){...
Most ez a kód, de így se működik:
<script>
$(document).ready(function()
if ($('ul li ul li').css("display") == "none") {
$("ul li div").click(function() {
$("ul li ul li").slideDown();
});
}
else {
$("ul li li").click(function() {
$("ul li ul li").slideUp();
});
}
});
</script>
Én nem látok benne szintaktikai hibát, ti igen?
Ez a css kód:
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
ul li {
float:left;
margin:2px;
width:60px;
height:40px;
background-color:grey;
}
ul li:hover {
background-color:red;
}
ul li a {
text-decoration: none;
}
ul li ul li {
margin:0px;
display:none;
}
</style>
Hopp, valami lemaradt! Egy ilyen: {
$(document).ready(function() {
if ($('ul li ul li').css("display") == "none") {
$("ul li div").click(function() {
$("ul li ul li").slideDown();
});
}
else {
$("ul li li").click(function() {
$("ul li ul li").slideUp();
});
}
});
Tényleg nem megy... A slideDown-ig eljut. Utána nem tudja értelmezni az else-t, pedig nekem logikusnak tűnik, hogy működjön.
$(document).ready(function() {
if ($('ul li ul li').css("display") == "none") {
$("ul li div").click(function() {
$("ul li ul li").slideDown();
});
}
else {
$("body").click(function() {
$("ul li ul li").slideUp();
});
}
});
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!