Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jquery][prototype] o co chodzi z tym klikaniem $().click(fn) $().observe('click', fn)?
23kulpamens
post 14.03.2009, 16:43:40
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 11.10.2007

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


Jakiego frameworku bym nie używał, czy prototype.js czy JQuery mam ten sam problem ze zdarzeniem kliknięcia.

Aktualnie w JQuery:

  1. function handleClick(e){
  2. console.log( "a");
  3. }
  4.  
  5. $(document).ready( function (e){
  6. $('#tester').click( handleClick( e));
  7. $('#tester2').click( function (e){
  8. console.log( "b");
  9. });
  10. });


Używam dodatku FireBug, do którego wysyłam komunikaty konsoli (console.log()). W momencie wczytania strony w konsoli jest już jedno "a" i klikanie na element #tester nic nie daje, natomiast klinaie na #tester2 wysyła do konsoli "b". Nie rozumiem dlaczego wykonuje się funkcja handleClick() bez wywoływania, ani gdize jest błąd. W książkach które czytalem o Prototype czy JQuery przykłady są napisane właśnie w ten sposób. Jaki błąd popełniam??


--------------------
Ta sygnaturka to lekkie przegięcie. To poważne forum. Pomijam już fakt naruszenia regulaminu. Usuwam /~nospor/ szkoda :(
Go to the top of the page
+Quote Post
lord_t
post 14.03.2009, 17:05:01
Post #2





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


Właśnie masz tam wywołanie (ale tak nie można robić):
Kod
$('#tester').click( handleClick(e));

możesz zrobić tak:
Kod
$('#tester').click(handleClick);

albo tak:
Kod
$('#tester').click(function(){ handleClick(e);} );


Edit: Masz rację co do drugiego przykładu:) jeśli chcesz otrzymać event w funckji:)

Ten post edytował lord_t 14.03.2009, 17:58:56


--------------------
Go to the top of the page
+Quote Post
23kulpamens
post 14.03.2009, 17:11:58
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 11.10.2007

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


Cytat(lord_t @ 14.03.2009, 17:05:01 ) *
albo tak:
Kod
$('#tester').click(function(){ handleClick(e);} );



A nie powinno być czasem tak??
Kod
$('#tester').click(function(e){ handleClick(e);} );


W każdymm razie wielkie dzięki, nie wiedziałem już co robić biggrin.gif


--------------------
Ta sygnaturka to lekkie przegięcie. To poważne forum. Pomijam już fakt naruszenia regulaminu. Usuwam /~nospor/ szkoda :(
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 12:58