Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podmiana wartości onclick
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
mike
Witam, mam następującą sytuację (trochę to zagmatwane winksmiley.jpg):
  1. {section name=Categories loop=$LINKS}
  2. <div id="category{$smarty.section.Categories.iteration}" class="news">
  3. <h1><a id="category{$LINKS[Categories].name}" href="#" onclick="new Effect.BlindDown( 'links{$smarty.section.Categories.iteration}' ); return false;">{$LINKS[Categories].name}</a></h1>
  4. <div id="links{$smarty.section.Categories.iteration}" onclick="new Effect.BlindUp( 'links{$smarty.section.Categories.iteration}' ); return false;" style="display: none;">
  5. {if $LINKS[Categories].links}
  6.  
  7. {assign var='LINKSLIST' value=$LINKS[Categories].links}
  8.  
  9. {section name=Links loop=$LINKSLIST}
  10. <a href="{$LINKSLIST[Links].path}">{$LINKSLIST[Links].name}</a> - {$LINKSLIST[Links].description}<br />
  11. {/section}
  12.  
  13. {else}
  14. Chwilowo <span class="error">brak linków</span> w tej kategorii.
  15. {/if}
  16. </div>
  17.  
  18. </div>
  19. {/section}


Wartośc atrybutu onclick dla linka znajdującego się wewnątrz h1 jest równa:
onclick="new Effect.BlindDown( 'links{$smarty.section.Categories.iteration}' ); return false;".
Chciałbym żeby po kliknięciu w niego wartośc zmieniła się na:
onclick="new Effect.BlindUp( 'links{$smarty.section.Categories.iteration}' ); return false;".

Ma to powodować że klikanie w jednego linka spowoduje raz pokazywanie diva, raz jego ukrywanie.

I odkryłem z przerażeniem, że moja wiedza o JavaScript nie wystarcza sad.gif

No cuż trzeba wołać: Pomocy exclamation.gif!
ikioloak
Chyba to Cie powinno zainteresowac:
Traditional event registration model
A tutaj masz ze spisem tresci:)
http://www.quirksmode.org/js/
artow o eventach jest tam kilka.

Sam sie w to nie bawilem - to co wyzej to znalezione na google. Powodzenia zatem.
Zajec
Kod
onlick="twojadziwnafunkcja(); this.onclick=function() { twojafunkcjapokliknieciu(); }"
mike
Niestety, to:
  1. <a href="#" onclick="new Effect.BlindDown( 'links{$smarty.section.Categories.iteration}' ); this.onclick=function() {ldelim} new Effect.BlindUp( 'links{$smarty.section.Categories.iteration}' ); return false; {rdelim}; return false; ">{$LINKS[Categories].name}</a>

co w rezultacie daje taki (przykładowy) wyniki:
  1. <a href="#" onclick="new Effect.BlindDown( 'links1' ); this.onclick=function() { new Effect.BlindUp( 'links1' ); return false; }; return false; ">php</a>


Nie dział poprawnie. Mogę teraz rozwinąć, zwinąć (zwinięcie działa bardzo ładnie), ale nie mogę ponownie rozwijać i dalej idąc, zwijać.

Sekwencję rozwiń/zwiń mogę wykonać tylko raz.

Czy macie pomysł jak rozwiązać ten problem :?:

Dzięki za pośwęcenie. 00:40 to nienajlepsza pora do myślnia smile.gif
nospor
Wczoraj ty mnie posądziłeś o przekombinowanie, dziś ja ci nie pozostanę dłużny smile.gif

A po co robisz dwie funkcje: jedna na rozwiniecie, druga na zwinięcie ?
Daj jedną funkcję, która na podstawie tego, czy div jest ukryty, czy nie będzie go pokazywać lub ukrywac. To przecież nie problem i sam to stosuje od wieeeków smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.