Autor | Zpráva | ||
---|---|---|---|
Fuk Profil * |
#1 · Zasláno: 2. 1. 2011, 01:01:17
Dobrý den, mám script na show/hide s tím že se to ješte ukládá do cookie. Potřeboval bych poradit jak udělat změnu obrázku po kliknutí. Kdybych na to kliknul tak se změní obrázek z collapse.gif na expand.gif. Kdyby byl "span - display:none" tak se zobrazí expand.gif a naopak.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>Show Hide</title> <script type='text/javascript'> function hideSpan( spanId ) { var spans = document.getElementsByTagName('span'), cv = readCookie('spanStates'), found, store, vis; for(var i=0;i<spans.length;i++) { if( spans[i].id.match( spanId ) && spans[i].style.visibility ) { vis = spans[i].style.visibility == "visible" store = spanId + ':' + (vis ? '0' : '1') + ','; spans[i].style.visibility = vis ? "hidden" : "visible"; cv = (found = cv.match( new RegExp( spanId + "\:[10]\\," ))) ? cv.replace( found, store ) : cv + store ; setCookie('spanStates', cv, 30); } } return false; } function initSpans() { var args = arguments, len = args.length, cv = readCookie('spanStates'), found; if( cv != "" ) for( var i = 0; i < len; i++ ) if( ( found = cv.match( new RegExp( args[i] +":([10])\\,") ) ) ) document.getElementById( args[i] ).style.visibility = ( found[1] == '1' ? 'visible' : 'hidden' ); } function readCookie( cookieName ) { var cValue = ""; /* Reduced from xcookie.js */ if( typeof document.cookie != 'undefined' ) cValue = ( cValue = document.cookie.match( new RegExp( "(^|;)\\s*"+this.encodeURIComponent(cookieName)+'=([^;]+);?') ) ) ? cValue[ 2 ] : "" ; return decodeURIComponent( cValue ); } function setCookie( cName, cValue, dayLife, path ) { var cs = "", expDate = new Date(); cs = encodeURIComponent( cName ) + "=" + encodeURIComponent( cValue ) + ';' ; if( path ) cs += ';path=' + path; if( dayLife ) { expDate.setDate( expDate.getDate() + dayLife ); cs += ";expires=" + expDate.toGMTString(); } document.cookie = cs; return readCookie( cName ); } </script> </head> <body> <span id="a256" style="visibility:hidden;" > My content<br/> </span> <a href="#" onclick="return hideSpan('a256')">show/hide span a256 <img src="http://www.shopdev.co.uk/blog/expand.gif" border="0"></a> <script type='text/javascript'> initSpans('a256'); </script> </body> </html> |
||
Časová prodleva: 3 dny
|
|||
CAShiD Profil |
#2 · Zasláno: 4. 1. 2011, 22:37:19
Co takhle použít jQuery?
Vše je pak mnohem snažší a Ty získáš to co potřebuješ ;-) Do hlavičky: <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> KOD: <body> <span id="span1" onClick="$('#span1').hide(); $('#span2').show();">PRVNÍ OBRAZEK</span> <span id="span2" style="display:none" onClick="$('#span1').show(); $('#span2').hide();">DRUHY OBRAZEK</span> </body> Dle potřeby si zaměň texty za obrázky. Je to odzkoušeno - takže funkční ;-) Doufám že Ti to pomůže ;-) |
||
Chamurappi Profil |
#3 · Zasláno: 4. 1. 2011, 23:05:23 · Upravil/a: Chamurappi
Reaguji na CAShiDa:
Jak už je u jQuery-spamů tradicí, neřešíš vůbec zadání. Tvůj kód neřeší ukládání do cookies, je frameworkovou verzí obyčejného skrývání/odkrývání, které je bez frameworku také na jeden řádek. Reaguji na Fuka: Ten skript je napsaný zvláštně, zjevně se při přepínání snaží působit na všechny elementy s daným id , ovšem při inicializaci dohledává jen jeden.
Obrázku dej id="a256-toggle" , za čtyřicátý řádek přidej:
document.getElementById( args[i] + "-toggle" ).src = ( found[1] == '1' ? 'collapse.gif' : 'expand.gif' ); document.getElementById( spans[i].id + "-toggle" ).src = vis ? "expand.gif" : "collapse.gif"; Budeš-li mít potíže s funkčností po provedení úprav, dodej rovnou odkaz na živou ukázku. „Kdyby byl "span - display:none" tak…“ … tak bude navěky neviditelný, protože uvedený skript pracuje s visibility a ne s display em.
|
||
Fuk Profil * |
#4 · Zasláno: 5. 1. 2011, 20:11:37
Chamurappi:
Díky moc všechno funguje jak má, ale přesto bych měl ješte jeden dotaz na zobrazení obrázku. Když si to uživatel schová a potom načte tu stránku tak se mu zobrazí obrázek, kterej mám v img napsanej a já se chci zeptat jak by to šlo ješte doopravit, aby se zobrazoval správný obrázek? Když to bude mít schováný tak se načte expand.gif a naopak. „(předpokládám, že ti nepatří shopdev.co.uk)“ Předpokládáš správně, ten obrázek byl vyhledán přes google a jen použit na zkoušku. |
||
Časová prodleva: 13 let
|
0