🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #39465

jak to zrobic obiektowo

#39465
From: Marek
Date: Sat, 15 Apr 2006 21:14
84 lines
3245 bytes
Mam problem, ktory sprobuje pokazac na prostym przykladzie definicji obiektu
:

<html>
<head>
<script>

function zmien(){                                    // funkcja wywolywana
po kliknieciu w napis
nowy_moj_obiekt.zmien_tresc("Ala bez kota");
}

//========================definicja obiektu moj_obiekt=====
function zmien_tresc(nowa_tresc){
  this.tresc=nowa_tresc;
  document.getElementById("napis").innerHTML=nowa_tresc;
}


function moj_obiekt(tresc){
 this.tresc=tresc;              // ustawianie wlasciwosci "tresc" obiektu
 this.zmien_tresc=zmien_tresc;  // przypisanie funkcji "zmien_tresc" jako
metody obiektu

 document.write("<p id='napis' onclick='zmien()'>"+this.tresc+"</p>");
}
//================koniec definicji obiektu moj_obiekt=====
</script>
</head>
<body>
<script>
nowy_moj_obiekt=new moj_obiekt("Ala ma kota");
</script>
</body>
</html>

Problem w tym, ze funkcja obslugi zdarzenia onclick - zmien() jest poza
definicja obiektu - i jesli chce cos zmienic
w obiekcie musze odwolac sie w niej do instancji nowy_moj_obiekt.
A ja chcialbym zdefiniowac ta obsluge zdarzenia jako element obiektu - zeby
zawsze po kliknieciu na napis w jakiejkolwiek
jego instancji zawsze zmienial sie on na "Ala bez kota".
Probowałem to zrobic , ale ponizszy kod jest bledny (zmienione linie
oznaczylem gwiazdka):
<html>
<head>
<script>

function zmien(){                                    // funkcja wywolywana
po kliknieciu w napis
this.zmien_tresc("Ala bez kota");                    //*
}

//========================definicja obiektu moj_obiekt=====
function zmien_tresc(nowa_tresc){
  this.tresc=nowa_tresc;
  document.getElementById("napis").innerHTML=nowa_tresc;
}


function moj_obiekt(tresc){
 this.tresc=tresc;              // ustawianie wlasciwosci "tresc" obiektu
 this.zmien_tresc=zmien_tresc;  // przypisanie funkcji "zmien_tresc" jako
metody obiektu
 this.zmien=zmien;              // przypisanie funkcji "zmien" jako metody
obiektu   //*

 document.write("<p id='napis' onclick='this.zmien()'>"+this.tresc+"</p>");
//*
}
//================koniec definicji obiektu moj_obiekt=====
</script>
</head>
<body>
<script>
nowy_moj_obiekt=new moj_obiekt("Ala ma kota");
</script>
</body>
</html>


Bede wdzieczny za pomoc
pozdrawiam
Marek
Technical Details
Message-ID: <e1rnpq$kh7$1@atlantis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: "Marek" <mrb@pl-net.pl>
Newsgroups: pl.comp.lang.javascript
Subject: jak to zrobic obiektowo
Date: Sat, 15 Apr 2006 23:14:32 +0200
Organization: tp.internet - http://www.tpi.pl/
Lines: 89
Message-ID: <e1rnpq$kh7$1@atlantis.news.tpi.pl>
NNTP-Posting-Host: actp176.neoplus.adsl.tpnet.pl
X-Trace: atlantis.news.tpi.pl 1145135738 21031 83.11.69.176 (15 Apr 2006 21:15:38 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Sat, 15 Apr 2006 21:15:38 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit