Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] dynamiczny odnośnik i onclick
pjamalia
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 1.11.2009

Ostrzeżenie: (0%)
-----


am funkcję:

  1. function createAhrefsTEST(div_name)
  2. {
  3. var div = document.getElementById(div_name);
  4. div.style.width=200;
  5. div.style.height=200;
  6. div.style.backgroundColor="black";
  7. div.style.color="white";
  8. for(var iter = 1; iter <js_counter; iter++)
  9. {
  10. a=document.createElement("a");
  11. a.setAttribute("href",iter);
  12. a.appendChild(document.createTextNode(iter+" - "));
  13. a.style.color="white";
  14. a.id=iter+"link";
  15. div.appendChild(a);
  16. a.onclick=function()
  17. {
  18. test(iter);
  19. }
  20. }
  21. }


jak kliknę na dany stworzony odnośnik to wyświetla mi w funkcji test(iter); wartość ostatniego odnośnika. Dla każdego odnośnika jest ta sama wartość. Nie wiem jak zrobić, żeby np po kliknięciu na 2 odnośnik wyśeietliło mi że to jest drugi, na trzeci - trzeci, czwarty-czwarty. Obecnie na którykolwiek nie kliknę to mam wartość ostatniego... czy może mi ktos pomóc?(IMG:style_emoticons/default/questionmark.gif)

dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


2 sposoby - w pierwszym kłania się zasada zasięgu zmiennych gdzie masz błąd w logice i poprawnie powinno być:
Kod
a.onclick=(function(iter){
    return function(){test(iter);}
})(iter);

drugi to i tak pośrednio numer przekazujesz do atrybutu id w taki sposób, że bez problemu można odzyskać tą liczbę np tak:
Kod
a.onclick=function(){test(~~parseInt(this.id,10));};

~~ raczej nie potrzebne ale to dla przypadków gdzie miałbyś uzyskać czasem NaN - choć zazwyczaj używam do przybliżania w dół...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 12:30