Autor Zpráva
Wi-Martin
Profil *
Ahoj, jak pomocí <button onclick="neco()"> vypsat metodu? ( jméno a věk otce?). Samostatně to funguje, ale nevím, jak s tím onclickem.. Díky :)

function clovek(jmeno, vek) {
    this.jehoJmeno = jmeno;
    this.jehoVek = vek;
    this.celeInfo = function() {
        document.write(this.jehoVek + " " + this.jehoJmeno);
    };
}

var sousedka = new clovek("Anna", 41);
var soused = new clovek("Tomáš", 29);
var otec = new clovek("Josef", 47);

otec.celeInfo();
Radek9
Profil
Wi-Martin:
Psaní metodou document.write po načtení stránky maže stránku
Wi-Martin
Profil *
Radek9:
jj, moje drobná chybka.. nicméně i s getElementById to nefunguje.. nebo jo a jen jsem měl někde chybu?


Wi-Martin:
resp. neřeší to situaci s onclick="" i kdyby to přepsalo celý dokument..
Radek9
Profil
Wi-Martin:
element.onclick = function () {
  otec.celeInfo();
};
Wi-Martin
Profil *
Radek9:
Jsem fakt začátečník, můžeš mi to napsat celé tak, aby to fungovalo např. v http://jsfiddle.net/ ? Díky moc.
Ps. můj nefunkční pokus: (není třeba ještě vytvořit metodu onclick?)

HTML: <button id="demo">​test</button>
function clovek(jmeno, vek) {
    this.jehoJmeno = jmeno;
    this.jehoVek = vek;
    this.celeInfo = function() {
        document.write(this.jehoVek + " " + this.jehoJmeno);
    };
}
 
var sousedka = new clovek("Anna", 41);
var soused = new clovek("Tomáš", 29);
var otec = new clovek("Josef", 47);
 
var button = document.getElementByTagName("button");
button.onclick = function () {
  otec.celeInfo();
};​
Chamurappi
Profil
Reaguji na Wi-Martina:
document.getElementByTagName
Neexistuje. Je jen getElementsByTagName (což vrací kolekci), nebo getElementById.
Jestli nechceš, aby se při kliku přepsal celý dokument, opravdu bys neměl v onclicku používat document.write.
Radek9
Profil
Wi-Martin:
To máš víceméně dobře, ale jak jsem řekl: document.write nahraď za něco jiného. A taky tam máš špatně metodu, je to getElementById.
Wi-Martin
Profil *
Chamurappi, Radek9:
Námitky beru a chápu :) díky.
Když ale napíšu opravený kód, příklad stejně není funkční (např v http://jsfiddle.net/ ). Můžete mi pls napsat kompletní kod, aby to v jsfiddle fungovalo?

můj HTML: <p id="demo"></p><button id="butt">​test</button>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ (případně pokud je třeba přidat onclick="")
můj JS:
function clovek(jmeno, vek) {
    this.jehoJmeno = jmeno;
    this.jehoVek = vek;
    this.celeInfo = function() {
        x = document.getElementById("demo");
        x.innerHTMl=(this.jehoVek + " " + this.jehoJmeno);
    };
}
var sousedka = new clovek("Anna", 41);
var soused = new clovek("Tomáš", 29);
var otec = new clovek("Josef", 47);
 
var button = getElementById("butt");                             
button.onclick = function () {
  otec.celeInfo();
};​
Radek9
Profil
var button = document.getElementById("butt");   
Wi-Martin
Profil *
Radek9, Chamurappi:
Tak už jsem to vyřešil.. asi jsem měl někde i jinou chybu, protože obalit funkcí jsem to zkoušel už dřív a nešlo to. No naštěstí už to funguje :

function ukaz() {

function clovek(jmeno, vek) {
    this.jehoJmeno = jmeno;
    this.jehoVek = vek;
    this.celeInfo = function() {
        x = document.getElementById("demo");
      x.innerHTML=(this.jehoVek + " " + this.jehoJmeno);
    };
}

var sousedka = new clovek("Anna", 41);
var soused = new clovek("Tomáš", 29);
var otec = new clovek("Josef", 47);
  
otec.celeInfo();
}

Nicméně když bych teď chtěl zobrazit souseda, tak by zápis vypadal jak? zkopírovat to celé, jako další funkci a jen zaměnit poslední hlášku otec za soused se mi zdá barbařina..


Wi-Martin:
Trochu je divný, že to funguje jen v http://jsbin.com/welcome/40574/edit
jsfiddle už ne..
Radek9
Profil
Wi-Martin:
Máš to celý tak nějak divně navrhlý. Co chceš aby to ve finále dělalo?
Wi-Martin
Profil *
Radek9:
je to jen příklad ke učení se javascriptu..

Vytvořit si třídu clovek, objekty Tomáš, Josef.., vlastnosti jehoVek a jehoJmeno, metodu celeInfo() a pomocí např klidně tří buttonů si zobrazovat metodu/fci (celeInfo) různých osob.
Radek9
Profil
Wi-Martin:
Několik zásad:
1) JS až pod potřebné HTML objekty
2) Metody do prototypu
3) Nepoužívat document.write
<div id="info"></div>
<button id="anna">Anna</button>
<button id="tomas">Tomáš</button>
<button id="josef">Josef</button>

<script>
function Clovek(jmeno, vek) {
  this.jmeno = jmeno;
  this.vek = vek;
}
var info = document.getElementById("info");
Clovek.prototype.celeInfo = function () {
  info.innerHTML = this.jmeno + " " + this.vek;
};

var anna = new Clovek("Anna", 15),
    tomas = new Clovek("Tomáš", 40),
    josef = new Clovek("Josef", 27);

document.getElementById("anna").onclick = function () { anna.celeInfo(); };
document.getElementById("tomas").onclick = function () { tomas.celeInfo(); };
document.getElementById("josef").onclick = function () { josef.celeInfo(); };
</script>
Wi-Martin
Profil *
Radek9:
Díky, tohle si určitě prostuduju a naučím ! :)
..ale jelikož je to úplně jiný zápis.. dalo by se to napsat i ve stylu toho mého kodu? protože se tím naučím, co a jak můžu napsat a spojit, když bych dostal takový kód. Anebo je to úplný nesmysl a nemám to řešit?
Radek9
Profil
Wi-Martin:
Vlastně je to drobně upravený kód z [#8].Ale je to na 3 buttony a výstup je do jednoho divu.
vytloukal
Profil *
Zdravím, trošku se snažím zorientovat se v JS. Zajímá mně jak napsat skript od RAdek9 když ten techt chci mít zobrazený pod těmi tlačítky ??

Díky za odpovědi M.
vytloukal
Profil *
už vím, je to tím DIV ID =

Díky

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: