Autor | Zpráva | ||
---|---|---|---|
cheli Profil |
#1 · Zasláno: 18. 5. 2010, 16:14:32
Zdravím. Mám text(p) a potřebuju, aby se při najetí změnil (resp. rozšířil, ale to omezení mám připravené v php). Zkoušel jsem to udělat jen přes javascript a funkci document.getElementById('uvod').innerHTML, ale při přejíždění přes text to někdy bliká.
Neznáte tedy nějaký jquery popř. radu na úpravu v javascriptu, která by odpovídalo mým požadavkům? Změna textu. Budu vám moc vděčnej. Díky |
||
Chamurappi Profil |
#2 · Zasláno: 18. 5. 2010, 16:22:43
Reaguji na cheliho:
To je asi nejsnazší způsob, jak upravit vnitřní HTML kód odstavce. Nic jednoduššího nenajdeš a použiješ-li nějaké jiné hotové funkce, budou také nejspíš měnit innerHTML .
„při přejíždění přes text to někdy bliká“ Jak to bliká? Ukaž. |
||
cheli Profil |
#3 · Zasláno: 18. 5. 2010, 16:59:26 · Upravil/a: cheli
Chamurappi:
jak to bliká - odkaz . Když najedeš na zelený blok, tak se otevře a pokud se někdy zajede do volného prostoru (mimo text), tak to zablikne. V IE to asi dělá víc. Nastavil sem na zabalení bloku zdržení asi 2sec, což trochu pomohlo, ale stále to není dokonalé edit: přijde mi, jakoby hover efekt působil jen na text a né na celý blok. Zatím nevim, jak to řešit |
||
Chamurappi Profil |
#4 · Zasláno: 18. 5. 2010, 17:50:51
Reaguji na cheliho:
„V IE to asi dělá víc.“ Všude to dělá stejně. Nemáš problém s měněním textu, máš problém s událostmi. Ony se totiž události onmouseover a onmouseout vyvolávají i při přejetí přes potomky elementu, na kterém jsou nadefinované (takzvaně probublávají). Takže jakmile uživatel odjede z odstavce uvnitř měněného <div> u, načasuješ jeho zavření, přestože je kurzor pořád uvnitř. Musíš při onmouseover to načasování zase zrušit metodou clearTimeout .
Na tvém místě bych v tomto případě neměnil innerHTML , ale jen třídu (tedy className ), která by s pomocí CSS rozhodla, co má a co nemá být viditelné. Ale to je spíš filozofický rozdíl, nijak nesouvisející s tím tvým blikáním.
|
||
cheli Profil |
#5 · Zasláno: 18. 5. 2010, 19:31:36
Chamurappi:
a poradil bys mi, jak clearTimeout vpásovat do mého scriptu? JS se zatím neučím, jen s ním přicházím do styku, tak se v něm ještě tolik neorientuji. <div onMouseOver="rozbaleni()" onMouseOut="zab()"></div> <script language="javascript"> function rozbaleni() { document.getElementById('uvod').innerHTML = text; } function zabaleni() { document.getElementById('uvod').innerHTML = '<?php echo substr($odstavec,0,340)." ...";?>'; } function zab() { var t=setTimeout("zabaleni()",2500); } </script> |
||
_es Profil |
#6 · Zasláno: 18. 5. 2010, 22:05:56 · Upravil/a: _es
cheli:
<div id=preduvod></div> <script> var el0 = document.getElementById('preduvod'), el = document.getElementById('uvod'), t1, t2; el0.onmouseover = function(){ clearTimeout(t1); t1 = setTimeout(rozbaleni, 100); }; el0.onmouseout = function(){ clearTimeout(t2); t2 = setTimeout(zabaleni, 100); }; function rozbaleni() { el.innerHTML = text; } function zabaleni() { el.innerHTML = '<?php echo substr($odstavec,0,340)." ...";?>'; } </script> |
||
cheli Profil |
#7 · Zasláno: 18. 5. 2010, 23:06:52
_es:
Vypadá to, že to funguje :D. Díky za pomoc, ušetřilo mi to čas i starosti. Přeju hezjký den a ještě jednou díky |
||
_es Profil |
#8 · Zasláno: 19. 5. 2010, 07:10:34
cheli:
Ešte zruš tie atribúty pre udalosti v tom DIVe. Teda nie: <div id="preduvod" onMouseOver="rozbaleni()" onMouseOut="zabaleni()"> <div id="preduvod"> |
||
Chamurappi Profil |
#9 · Zasláno: 19. 5. 2010, 10:13:58
Reaguji na cheliho:
A také vyhoď ten devadesátikilový balík skriptů, které nepoužíváš. |
||
_es Profil |
#10 · Zasláno: 19. 5. 2010, 11:18:01
cheli:
A myslel si na to, že môže mať niekto vypnutý JS alebo Flash? |
||
cheli Profil |
#11 · Zasláno: 19. 5. 2010, 12:40:02
Chamurappi:
> Reaguji na cheliho: > A také vyhoď ten devadesátikilový balík skriptů, které nepoužíváš. Nejspíš tim myslíš to, že by to mělo být v externím souboru? _es: > cheli: > A myslel si na to, že môže mať niekto vypnutý JS alebo Flash? Nemyslel. Jen jsem hledal způsob, kterým by se tohlo dalo udělat. Flash není moje práce |
||
_es Profil |
#12 · Zasláno: 19. 5. 2010, 13:16:23
cheli:
„... Nejspíš tim myslíš to, že by to mělo být v externím souboru?“ Myslí práve "vyhodenie" tých nepoužívaných externých súborov. |
||
Časová prodleva: 14 let
|
0