Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wywoływanie własnej metody wewnątrz klasy
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Yorki
Witam, chcę zrobić sobie klasę popup do której będę ładował odpowiedni adres i wyświetlał na swojej stronie, oto kod:

Kod
function Popup(){
    this.html = '';
    this.title = '';
    this.resize = false;
    this.width = 400;
    
    this.init = function(){
        var bar = $('<div class="popup-bar"></div>');
        var close = $('<div class="popup-close">x</div>').click( function() {
                $(this).parent().parent().remove();
            });
        var title = $('<div class="popup-title">'+this.title+'</div>');
        var content = $('<div class="popup-content">'+this.html+'</div>');
        bar.append(close).append(title);
        
        var win = $('<div class="popup-window"></div>');
        win.append(bar);
        win.append(content);        
        $('body').append(win);
    };
    
    this.url = function(url){
        $.get(url,
            function(data){
                this.html = data;
                this.init();
            });        
    }
}


Oraz wywołanie :

Kod
$(document).ready( function(){
    pop = new Popup();
    pop.url('/');
});


Dostaję błąd, że obiekt nie ma takiej metody.

Kod
Uncaught TypeError: Object #<Object> has no method 'init'


Co zrobiłem źle? Dodam, że wcześniej nie bawiłem się w klasy pisząc skrypty smile.gif
wookieb
[JAVASCRIPT] pobierz, plaintext
  1. this.url = function(url){
  2. var here = this;
  3. $.get(url,
  4. function(data){
  5. here.html(data);
  6. here.init();
  7. });
  8. }
[JAVASCRIPT] pobierz, plaintext


W function jest inny kontekst "this"
Yorki
Cytat(wookieb @ 13.02.2012, 08:23:12 ) *
[JAVASCRIPT] pobierz, plaintext
  1. this.url = function(url){
  2. var here = this;
  3. $.get(url,
  4. function(data){
  5. here.html(data);
  6. here.init();
  7. });
  8. }
[JAVASCRIPT] pobierz, plaintext


W function jest inny kontekst "this"


Racja.. przeoczyłem to wink.gif
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.