Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jq + js] $().click() a dostęp do innej metody, trochę jquery, trochę teorii JS
webcitrn
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 11.05.2008
Skąd: Łódź

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


Witam. Mój kod wygląda mniej więcej tak:
Kod
function Class() {
  this.foo1=1;
  this.foo2=2;

  this.Init=function() {
    // create HTML and append to DOM here
    this.AddListeners();
  }

  this.AddListeners=function() {
    $('get existing element right').click() {
      console.log('test');
      this.DoSome();           // (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !
    }
  }

  this.DoSome=function() {
    console.log(this.foo2);
  }

}

var object=new Class();
object.Init();

Oczywiśćie funkcja DoSome() nie jest wywoływana. Na wyjściu konsoli wypisuje się 'test' więc skrypt wchodzi do .click(){} ale nie widzi funkcjki DoSome().. Domyślam się że jest to związane z przestrzeniami nazw. Ale za Chiny ludowe nie potrafię sobie z tym poradzić. Ktoś wie jak obejść ten problem ?

Ten post edytował webcitrn 19.09.2008, 11:11:54
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




this w obrebie $(twoichobiektow) dotyczy sie tych obiektow a nie this klasy
Go to the top of the page
+Quote Post
webcitrn
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 11.05.2008
Skąd: Łódź

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


Ale ja wiem że tak jest (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Tylko nie wiem jak się dsstać jakby do klasy na rzecz której obiektu jest wywoływana funkcja (w tym przypadku .click()) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )) Nie ma w JS czegoś w rodzaju parent itp ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) czytałem o pseudoskładowej .caller ale nic nie dała..
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




tak na szybko
Kod
function Class() {
  this.foo1=1;
  this.foo2=2;
var dis = this;
  this.Init=function() {
    // create HTML and append to DOM here
    this.AddListeners();
  }

  this.AddListeners=function() {
    $('get existing element right').click() {
      console.log('test');
      dis.DoSome();           // !
    }
  }

  this.DoSome=function() {
    console.log(this.foo2);
  }

}

(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 24.09.2025 - 03:40