Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][Mootools] Accorion - jak sprawdzić który nagłówek?
Forum PHP.pl > Forum > Przedszkole
b_chmura
Witam
Za pomocą Accordion robię menu strony. Jest on śmiesznie prosty jednak nie potrafię w nim odkryć jednej opcji.
Jak sprawdzić w który nagłówek kliknąłem? Potrzebne mi to jest by móc użyć go do index'u dla innej klasy

Kawałek kodu:
  1. var menu = $$(".menu");
  2. var value = $$(".value");
  3.  
  4. var suwak = $$(".pas");
  5.  
  6. var efekt = new Accordion(menu, value,{
  7. alwaysHide: true,
  8. display: false,
  9. onComplete: function() {
  10. //suwak[NR_NAGLOWKA_W_KTORY_KLIKAM].setStyle("visbility", "visible");
  11. }
  12. });
wookieb
Ja bym zaczął czytać dokumentacja.

http://blog.dziudek.pl/2007/09/08/mootools-1-1-accordion-js/ -> onActive
b_chmura
Cytat(wookieb @ 5.09.2009, 16:34:10 ) *
Ja bym zaczął czytać dokumentacja.

http://blog.dziudek.pl/2007/09/08/mootools-1-1-accordion-js/ -> onActive


Ja zaś proponowałbym przynajmniej zapoznać się z tematem. Co onActive ma się do mojego postu? Ja potrzebuje numer ID elementu który się wykonuje. Żebym mógł go wykorzystać jako klucz do innej tablicy.

Edit:
Źle. Nie ID bo nagłówki nie mają ID. Potrzebuje numeru klasy aktualnie klikniętego nagłówka. No wiecie o co chodzi biggrin.gif
wookieb
"Jezu chryste przenajświętszy".
A skad Accordion ma wiedzieć co ty chcesz żeby ci przekazał?
Skoro ci przekazał OBIEKT NA KTÓRY KLIKNĄŁEŚ tzn, że masz dostęp do jego parametrów i wybierasz sobie co chcesz. A to czy jest to nagłówek czy nie to my nie wiemy (skąd mamy wiedzieć co u ciebie jest nagłówkiem?), to już od ciebie zależy jak się do tego dobierzesz. Jeżeli to rodzic elementu klikanego to dobierz się do niego. A jeżeli chcesz go odebrać w onComplete to zapisujesz sobie go w oddzielnej zmiennej przy onActive jeżeli nie dostajesz go jako parametru funkcji onComplete
Cytat
Ja zaś proponowałbym przynajmniej zapoznać się z tematem.

A ja bym proponował wykazać więcej samodzielności.
b_chmura
Dalej się nie zrozumieliśmy. Zmienna NR_NAGLOWKA_W_KTORY_KLIKAM to zmienna którą właśnie szukam.

Dla przykładu chodzi mi o to samo co przy funkcji "each" drugi parametr
  1. $$("menu").each(function(element, NR_NAGLOWKA_W_KTORY_KLIKAM) {
  2.  
  3. suwak[NR_NAGLOWKA_W_KTORY_KLIKAM].setStyle("visbility", "visible");
  4. });
wookieb
No chyba, że tak.

Nie widziałem, żeby było to przekazywane do któregoś ze zdarzeń więc z opcji prymitywnych zostaje coś takiego.

Dostęp do elementu kliknietego:
1)
Kod
onActive : function(element)
{
clickedElement = element;
}

onComplete : function()
{
clickedElement; // tutaj masz do tego dostep
}

albo
2)
Kod
onComplete : function(elementRozwijany)
{
// od elementuRozwijanego po ścieżce dom dobierz sie do elementu
}


Numer klikniętego elementu
1) Numerujesz elementy odpowiednimi id (1,2,3 itd)
2) Pobierasz liste wszystkich naglowkow i szukasz pozycji aktualnie kliknietego (w jQuery jest metoda index)
3) nie wiem czy w accordion jest zaznaczone w jakis sposob, ktory numer elementu jest otwierany. Raczej trzeba przejrzeć kod. Jeżeli nie jest to pozostaje metoda 1 i 2

//EDIT
Pogrzebałem i jest coś takiego

Kod
onComplete : function()
{
this.togglers.indexOf(element_klikniety); // jak go uzyskac to odsyłam do posta wyzej.
}

ALBO
Kod
onComplete : function(element)
{
this.elements.indexOf(element); // jak go uzyskac to odsyłam do posta wyzej.
// jezeli kazdemu naglowkowi dasz jeden element do rozwiniecia to numer powinien się zgadzać.
}
b_chmura
Przed chwileczką również dorwałem indexOf ale nic z tego.
Nie ma czegoś w style getNumerWystepowania(element)?
wookieb
a czyż nie to robi indexOf? na odpowiedniej tablicy?
erix
A samemu nie możesz sprawdzić? http://mootools.net/docs/core
b_chmura
Ja wiem co robi indexOf ale nie sprawdza się w tym przypadku.

erix: naprawdę myślisz, że nie szukałem? po prostu widocznie nie znalazłem. Jeśli Ty wiesz/znalazłeś pomóż smile.gif
wookieb
A sprawdziłeś kod, który podałem?
b_chmura
Fuck, traktujecie mnie jak debila.
Tak sprawdziłem plus 100 innych moich opcji. Naprawdę myślicie, że czekam aż mi podacie i będę szczęśliwy?
Po prostu mi kończą się pomysły, nie jestem aż taki wodzirej w JS/Mootools i nie wiem czy w ogóle istnieje taka opcja w accordion żeby dostać się do klucza aktualnie klikniętego elementu.
erix
Cytat
Tak sprawdziłem plus 100 innych moich opcji. Naprawdę myślicie, że czekam aż mi podacie i będę szczęśliwy?

To pokaż, jak próbowałeś.

[JAVASCRIPT] pobierz, plaintext
  1. toggler = document.id(toggler);
  2. element = document.id(element);
  3. var test = this.togglers.contains(toggler);
  4. this.togglers.include(toggler);
  5. this.elements.include(element);
  6. var idx = this.togglers.indexOf(toggler);
[JAVASCRIPT] pobierz, plaintext

Nawet w kodzie samego efektu jest tak, jak pisze ~wookieb...
b_chmura
Wiecie co? Dzięki śliczne!
Przepraszam za swoje roztrzepanie...
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.