Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Javascript - problem
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
bartek1234321
Dlaczego to nie działa i jak zrobić żeby działało smile.gif

xxx = function()
{
this.x=0;
}

xxx.prototype.yyy = function()
{
alert("test");
}

xxx.prototype.abcdef = function()
{
if(this.x == 0)
{
this.yyy() // wywala błąd, yyy nie jest funkcją. jak to zrobic inaczej zeby działało questionmark.gif
}
}
nospor
No dobra, ale jak ten kod odpalasz?
bartek1234321
var x = new xxx();
xxx.abcdef();
nospor
ech...
nie: xxx.abcdef();
a: x.abcdef();

Nawalisz xow a potem sam sie gubisz
bartek1234321
sory jest x tylko.
napisalem w skrocie zeby pokazać o co chodzi, ogolnie kod jest inny ale zasada ta sama.
nospor
Powiem tak: kod co tu pokazales jest poprawny.
Moze wiec nie wal skrótem, tylko pokaz caly kod w pelnej postaci jak wyglada bo moze tam masz gdzies blad
bartek1234321
Ok, dzięki, poszukam u siebie jeszcze w takim razie i jak coś to napisze.


nadal nie działa ale trochę inaczej używam go niż napisałem smile.gif

var x = new xxx();

document.getElementById("test").onblur = x.abcdef;

i wtedy mi wywala błąd, że yyy nie jest funkcją, a jeżeli użyję tak jak wyżej pisałem to jest ok, co jest źle questionmark.gif
bendi
kontekst Ci sie traci, zrob tak:

onblur = function(e) {
x.abcdef();
}
nospor
Bo przekazujesz callbacka i on gubi info o obiekcie

Kod
x = new xxx();
function aa(){
x.abcdef();
}

//..............
document.getElementById("test").onblur = aa;
bartek1234321
Dzięki wielkie ! Obie opcje działają smile.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.