webForumDet fria alternativet

jQuery UI med toggle-funktionen - stänga div när man klickar utanför den

JavaScript

7 svar · 649 visningar · startad av web00132

Medlem sedan maj 2001797 inlägg
Frågan#1

Min kod ser ut så här:

1. $("#openContent").click(function () {
2.     $("#content").toggle("slide",{direction: "right"},500);
3. });

#openContent är alltså en a-länk som öppnar och stänger diven #content och det funkar finfint. Men om jag vill att den ska stängas när jag klickar utanför den, förutsatt att den är öppen, hur gör jag då?

Medlem sedan juni 20019 519 inlägg
#2

bind click event på din body/document som kolla en flagga om den skall dölja #content (kolla om den är är visible eller inte).

Medlem sedan maj 2001797 inlägg
#3

Tack men sorry, det där säger inte mycket för en JS-amatör :) Har du lust att utveckla?

Medlem sedan juni 20019 519 inlägg
#4

har du något exempel uppe med CSS? så man inte jobbar i helt blindo?

Medlem sedan juni 20019 519 inlägg
#5

här har du något kanske?
http://jsbin.com/uroru3

Medlem sedan maj 2001797 inlägg
#6

YES! Det är exakt det där jag vill! Har för mig att du räddat mig även tidigare voigtann1, stort tack :bire

En grej nu är att om man dubbelklickar så glider diven tillbaks två gånger liksom, om man klickar utanför den. Försöker hitta något bra om typ "prevent doubleclick" men hittar inget relevant, tittade bl a på one:
http://api.jquery.com/one/
Det verkar ju vara det jag vill men hur implementerar jag det i denna kod?

Medlem sedan juni 20019 519 inlägg
#7

ändra:

content.hide("slide",{direction: "right"},500);

till:

content.not(":animated").hide("slide",{direction: "right"},500);

http://jsbin.com/uroru3/5/

Medlem sedan maj 2001797 inlägg
#8

Funkar klockrent!

250 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)