Autor Zpráva
kuku
Profil *
Mám HTML kód:
<div class="kuku">
<a href="nekam.htm">Nadpis</a>
<p>Text</p>
</div>

a potřebuji nějaký script, který by po kliknutí na div kuku otevřel stránku nekam.htm. Potřebuji to do externího souboru a nějak obecně, abych to tam nemusel mít několikrát
habendorf
Profil
A proč ti nestačí ten normální odkaz?
kuku
Profil *
Protože div nemůžu uzavřít do odkazu
habendorf
Profil
Proč nemůžeš?

a {display:block}

<a href="http://www.google.com">
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</div>
</a>
kuku
Profil *
habendorf
Vyzkouším
Fred
Profil
No nevím blockový div v řádkovém a být nemá
kuku
Profil *
Funguje to, ale není to validní. Nešlo by to tím JavaScriptem?
Fred
Profil
Šlo by to javascriptem, ale zkus nejdřív jestli by ti to nešlo takhle
a,span{display:block}

<div class="kuku">
<a href="nekam.htm">Nadpis<span>Text</span></a>
</div>
kuku
Profil *
Fred
To umím taky, ale já potřebuju, aby klikal celý div (i s padinem), a ne jenom text uvnitř divu
Yuhů
Profil
Umím z hlavy napsat javascript tak, aby se otevřela stránka "nekam.html" při kliknutí na konkrétní div:

<div onclick="document.location.href = 'nekam.html';">...

ale jak jsem pochopil z dotazu, chceš to navázat na class. To asi bude potřeba navázat na <body> handler onclick a do něj nastavit funkci. Funkce se podívá, jestli má prvek className rovnou "kuku" a jestli jo, tak document.location.href="nekam.html"

Ale z hlavy to napsat neumím.
habendorf
Profil
No jo, sekl jsem se. Myslel jsem to takhle:

<a href="nekam.htm">
<span class="kuku">
Nadpis
Spousta dalšího textu
</span>
</a>
a spanu dát display:block, nastavit height a width, a vynulovat padding.

No já nevím, JS bych do toho netahal ani omylem. Proč?
Fred
Profil
Tohle si dej do externího scriptu, uprav si nejakeNadrazeneId, ten class, pokud tedy není kuku a titulek a odkazovanou stránku

var kde = document.getElementById('nejakeNadrazeneID');
var co = kde.getElementsByTagName('div');
for (var i=0;i<co.length;i++){
var divclass=co[i].getAttribute('class');
if(divclass=='kuku'){
co[i].setAttribute('title','titulek');
co[i].onmouseover =function(){this.style.cursor='hand';this.style.cursor='pointer';}
co[i].onclick =function(){document.location.href='nekam.php';}
}}}
function addEvent(obj,evType,fn){ //thanx http://www.scottandrew.com/weblog/articles/cbs-events
if(obj.addEventListener){obj.addEventListener(evType,fn,true);return true;}
else if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r;}
else{return false;}}
addEvent(window,'load',init);
Fred
Profil
habendorf On chce klikat na celý odstavec včetně hrefu, asi něco jako v některých diskusích, když se obarvují související příspěvky, někde jsem něco takového viděl jako prezentaci, klikalo se na celou stránku a přecházelo to na další.
Leo
Profil
Uaaaa, a nebylo by fakt lepsi zkusit ochocit CSS? Kvuli odkazu tohle? Leo
Fred
Profil
Taky netuším proč to jako nejde s tím spanem ;-)
habendorf
Profil
S tím spanem to musí jít, já tam měl zase chybu, měl bych jít spát. Výše jsem to opravil.
Fred
Profil
Jo a na tohle mi právě Kuku odpověděl To umím taky, ale já potřebuju, .... , tak jsem naservíroval ten js.
habendorf
Profil
Tak už začínám být trochu vedle: To umím taky, ale já potřebuju, aby klikal celý div (i s padinem), a ne jenom text uvnitř divu

Když to dám takhle:

<a href="nekam.htm">
<span class="kuku" style="display:block; width:80px; cursor:pointer">
Nadpis Spousta dalšího textu bla bla bla
</span>
</a>

tak to prostě musí klikat po celý ploše. No asi jsem fakt unavenej.
Fred
Profil
Nejsi, taky jsem si to myslel, ale nechtělo se mi to zkoušet a z hlavy sem si nebyl jistej, ta reakce to umím taky ve mně vyvolala pochybnosti a tak jsem automaticky usoudil, že to nejde :-(
Jasně, že to takhle jde.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0