jQuery ændre attr onlick

Tags:    jquery javascript

Hej.
Jeg har en div med classen openFolder, og så har jeg lavet en click funktion til den.
Som gør at den ændre classen til closeFolder.
Men selvom classen er ændret bliver min openFolder.click() stadig udløst når jeg klikker på den.

Fold kodeboks ind/udJScript kode 




9 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Jeg tror jeg ville sætte en id på den yderste ul

Fold kodeboks ind/udHTML kode 


og så sætte en delegated event handler på den:

Fold kodeboks ind/udJScript kode 


Tilsvarende kan du selvfølgelig sætte en event handler til alle elementer med klassen 'closeFolder'

Fold kodeboks ind/udJScript kode 




Det var fordi jeg synes det lidt mere præcist beskriver, hvad det er jeg tror du vil. Nemlig at tage det b-element der bliver klikket på, og ud fra det finde det ul-element der er på samme niveau i dom'en.

Men hvis du synes bedre om parent().find() synes jeg du skal beholde det, for det fungerer lige så godt, og det er en smagssag om man foretrækker det ene frem for det andet.



Har du lavet en metode på samme måde til close-folder metoden?
Og lavet noget der udløser en effekt ud over at skifte klassen?



Det er jo ligemeget.

openFolder.click() function skal jo ikke triggers når jeg har skiftes den class?



Jeg kunne forestille mig det har noget at gøre med at attr skifter direkte HTML'en i stedet for DOM'en.

Prøv at bruge addClass/removeClass når du tilføjer/fjerner class på et element.

Så hvis du vil fjerne en class fra et element f.eks.
$('.openFolder').removeClass('openFolder');



Samme resultat.



Ok. Så vil jeg foreslå dig at du fjerner dit click event, når du fjerner din class. Prøv at tage et kig på: http://api.jquery.com/unbind/

Jeg ved ikke om det er den smarteste måde, men det er lige hvad jeg selv ville gøre på nuværende tidspunkt.



Indlæg senest redigeret d. 25.12.2012 17:29 af Bruger #6559
Kan ikke lige se løsningen med unbind.
Kan føle i mangler lidt mere kode at se på.

Jeg er igang med at lave en funktion der viser en FTP, og så skal man jo kunne lukke og åbne mapperne.

Sådan her ser opsætningen ud.
Fold kodeboks ind/udHTML kode 

JavaScript delen:
Fold kodeboks ind/udJScript kode 

Kan ikke se hvordan jeg skal løse problemet.



Tak AH virkede rigtig godt.
Men hvorfor har du valgt siblings? og ikke find.



t