Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] Podpięcie funkcji obiektu do linka, Jak dobrać się do funkcji obiektu i podpiąć do anchor?
thek
post
Post #1





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Witam
Mam mały problem. W JS utworzyłem bibliotekę w której zdefiniowałem obiekt z funkcjami do GoogleMaps, mniej więcej o takim szablonie:
Kod
function obiekt(arg1, arg2){
    Var me = this;
    me = arg1;
  me.data = [];
    }
    
    obiekt.prototype.move = function (number) {
        var me = this;
        me.arg1.panTo( me.inna(number) );
    }
    
    obiekt.prototype.inna = function () {
        var me = this;
        document.getElementById(me.arg1).innerHTML = "<a href='javascript:" + me.name + ".move("+ i +")'>Move it</a>";
    }

Zaś na stronie w kodzie wywołuję:
Kod
   var map = new GMap2(document.getElementById("map"));
    map.setCenter(new GLatLng(52.23152, 18.24576), 16);
    map.addControl(new GLargeMapControl());
                
    var mgr = new obiekt(map, {sidebar_id: "odleglosc"});
  mgr.adddata(z parametrami);

Wszystko inne ładnie działa, obiekt się wyświetla, sidebar się generuje, ale nie wiem jak co wpisać by prawidłowo wywołana została funkcja move(wartosc) w linku generowanym przez funkcję inna(). Bo to właśnie na rzecz obiektów w tablicy data jest ona wykonywana. Musiałbym jakoś podpiąć obiekt mgr do niej ale nie mam pojęcia jak...
Wiem że problemem jest ten fragment:
Kod
<a href='javascript:" + me.name + ".move("+ i +")'>Move it</a>

Próbowałem tak jak jest ale wyrzuca mi w statusie przeglądarki undefined. Próba podstawienia this kończy się wyświetlaniem tam przykładowo: java script:[object Object].move(1)
Jak powinienem przebudować kod, by kliknięcie na generowany link zadziałało?
Przechwytuję bowiem tylko obiekty z data, które są parametrami do niej, ale nie wiem jak powinienem wywołać wspomnianą funkcję move(number) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Z góry dziękuje za odpowiedź

Nie widziałem opcji "Edytuj Post" więc podam sposób w jaki obszedłem/rozwiązałem problem.

W bibliotce utworzyłem funkcję o tej samej nazwie, ale globalną i podpiąłem do niej prototyp, choć musiałem umieścić go wewnątrz definicji obiektu. Innymi słowy wygląda to tak:
Kod
//defnicja obiektu

function obiekt(arg1, arg2){

//zmienne obietu

var me = this;

me.data = [];

//Funkcje obiektu

obiekt.prototype.move = function (number) {

     arg1.panTo( me.inna(number) );

}

}

//zewnętrzne funkcje obiektu

obiekt.prototype.inna = function () {

var me = this;

document.getElementById(me.arg1).innerHTML = "<a href='javascript:move(number)'>Move it</a>";



//funkcje globalne

function move(number){

obiekt.prototype.move(number);

}


Ten post edytował thek 12.02.2009, 14:47:43
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.12.2025 - 21:59