Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> This w onClick
Yorki
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 2
Dołączył: 12.09.2005

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


Witam, mam problem, tak mniej więcej wygląda struktura mojej "klasy":

  1. function Lib(){
  2. this.init = function(c){
  3. c.onmousemove = this.mouseMove;
  4. }
  5. this.mouseMove = function(e){
  6. if (this.getElementByCursor(e.clientX, e.clientY)){
  7. document.body.style.cursor = "pointer";
  8. }
  9. }
  10. this.getElementByCursor(x,y){
  11. //
  12. }
  13. }


Problem jest w CYLib.mouseMove, to this powinno się odnosić do Lib, a nie do obiektu z którego wywołane jest onClick. Jak odwołać się do Lib?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Powinieneś tutaj skorzystać z Function.call().
Go to the top of the page
+Quote Post
Yorki
post
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 2
Dołączył: 12.09.2005

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


Cytat(kamil4u @ 31.08.2012, 20:27:58 ) *
Myślę, że lepiej w tym wypadku zrobić sobie zmienną that:
Kod
function Lib(){
this.that = this;


i odwoływać się właśnie przez tą zmienną


Ale co to daje? Nic. Bo nie odwołam się przez this.that ..

Cytat(Crozin @ 31.08.2012, 19:21:05 ) *
Powinieneś tutaj skorzystać z Function.call().


Nie wiem czy dobrze napisałem, ale próba odwołania się przez :

  1. this.mouseMove = function(e){
  2. if (Lib.getElementByCursor.call(this, e.clientX, e.clientY) != false){
  3. document.body.style.cursor = "pointer";
  4. }
  5. }


Kończy się : Uncaught TypeError: Cannot call method 'call' of undefined

Ten post edytował Yorki 31.08.2012, 23:38:33
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 18:40