Autor Zpráva
Propet
Profil *
Mám tento kód s inline Javascriptem a neumím ho přepsat do normálního souboru.js

<div id="novy_div">
 <span title="Milan" onclick="alert(this.title)">Milan</span>
 <span title="Petra" onclick="alert(this.title)">Petra</span>
 <span title="Lenka" onclick="alert(this.title)">Lenka</span>
</div>


Pomůže mně někdo se zbavit těch "onClicků" v HTML? díky
juriad
Profil
A proč se jich chceš zbavit? Protože to nějaký nástroj radí? Jinak by to šlo podobně jako jsem radil v Pomoc s jQuery funkciou (zbytek vlákna je trochu o něčem jiném).
Propet
Profil *
Protože to neumím :) a když si dělám nějakou svoji stránku, mám tam různých onclicků jak nasr..... hi-hi
Dostal jsem už zato někde jidne "vyhubováno" ať se naučím lépe javascript.
Vím že to jde hromadně jednoduše zapsat mezi <script>...</script>.
mimochodec
Profil
Propet:
Ten kód je jen nějaká ukázka, nebo to tam opravdu takhle máš? A kolik těch onclicků tam je?
Dan Charousek
Profil
Propet:
Pokud ten div s id "novy_div" obsahuje pouze spany, u kterých chceš, aby se po kliknutí zobrazil jejich title atribut, tak to může vypadat nějak takto:

var div     = document.getElementById("novy_div");
var spans   = div.getElementsByTagName("span");

for(var a = 0; a < spans.length; a++) {
    
    var span = spans[a];
        span.onclick = function() {
            alert(this.getAttribute("title"));
        }
    
}
Chamurappi
Profil
Reaguji na Dana Charouska:
Proč this.getAttribute("title")? Proč ne this.title?
Ještě podotknu, že pokud Propet použije tento skript, musí ho umístit za element s id="novy_div".


Reaguji na Propeta:
Dostal jsem už zato někde jidne "vyhubováno" ať se naučím lépe javascript.
Tak já ti tímto příspěvkem zase odhubuji, uvedený kousek kódu mi připadá zcela v pořádku.
anonymníí
Profil *
Chamurappi:
"uvedený kousek kódu mi připadá zcela v pořádku"
Nemám nyní možnost vyzkoušet, ale jak je to s onclickem na ne-odkazech na mobilních zařízeních?

Nejsem si zcelý jistý, ale nejsou některé platformy imunní vůči onclickům na čemkoliv jiném než odkazech? Myslím, že jsem se s tím někde setkal, ale kdo byl autorem, si už nevzpomínám (ač by to mnohé mohlo vysvětlit).
Chamurappi
Profil
Reaguji na anonymníího:
ale nejsou některé platformy imunní vůči onclickům na čemkoliv jiném než odkazech?
Co já vím, tak nejsou, onclick je universální akční událost, jde vyvolat myší, klávesnicí i dotykem. Dát na úsek s titlem onclick="alert(title)" je z hlediska dotykových zařízení naopak docela dobrý nápad, protože zpřístupní obsah bubliny i uživatelům bez myši.

Mobily údajně můžou mít imunitu proti probublávání – že třeba onclick na <html> nechytí libovolné ťuknutí dovnitř stránky. Jako možné zdůvodnění této imunity se nabízí, že dávat uživateli vizuální potvrzení, že stránka jako celek zachytila jeho akci, nemá moc smysl, ale to je argument spíš proti tomu vizuálnímu potvrzení, než proti zachycení kliku.

Kdyby s onclickem v mobilech problém byl, přesunutí skriptu do externího JS by nepomohlo.
anonymníí
Profil *
Chamurappi:
S tím probubláváním máš možná pravdu. Je možné, že se to vztahovalo na toto, zkusím zapátrat a případně sem ten článek hodím, pokud bude přínosný.

ad alert: částečně máš pravdu, na druhou stranu, nevím, jak by se mi pak na telefonu brouzdalo. Asi bych hledal, kde vypnout JS. Některé titulky mohou být užitečné, jiné mohou jen lehce dokreslovat situaci a tam by byl alert nežádoucí.

ad externí JS: to je jasné, opak jsem netvrdil. Jen jsem chtěl zareagovat a ujistit se, že ten tvůj kód bude fungovat.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0