![]() ![]() |
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 |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 21:59 |