Autor | Zpráva | ||
---|---|---|---|
Manny Profil * |
#1 · Zasláno: 29. 7. 2009, 16:03:53
Ahoj,
řeším výše popsaný problém s jQuery. Mám menu, u kterého pomocí jQuery zobrazuju / skrývám submenu. Zjistil jsem ale, že při použití takového menu nefunguje Slimbox (lightbox). Přiložím ukázku skriptu: <link rel="stylesheet" href="slimbox/css/slimbox.css" type="text/css" media="screen"> <script type="text/javascript" src="slimbox/js/mootools.v1.11.js"></script> <script type="text/javascript" src="slimbox/js/slimbox.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(document).ready(function(){ $(".submenu_item2").hide(); $("div.menu_item2").toggle(function(){ $(this).addClass("active"); }, function () { $(this).removeClass("active"); }); $("div.menu_item2").click(function(){ $(this).next(".submenu_item2").slideToggle("slow,"); }); }); </script> <style> .submenu_item2 { display: none; } </style> <div class="menu_item2"> <a href="#" style="display: block;">A</a> </div> <div class="submenu_item2"> <div style="overflow: hidden;"> <a href="#">A1</a><br /> <a href="#">A2</a><br /> <a href="#">A3</a> </div> </div> <a href="" rel="lightbox"><img src="beznazvu.png" alt=""></a> Nevíte prosím čím tento problém může být způsoben?? |
||
jso Profil * |
#2 · Zasláno: 29. 7. 2009, 16:32:30
pokud dáš
<script type="text/javascript" src="menu.js"></script> |
||
Manny Profil * |
#3 · Zasláno: 29. 7. 2009, 17:32:14
aha... no a jak by se to dalo vyřešit? Potřeboval bych na stránce mít aktivní oba tyto prvky
|
||
jso Profil * |
#4 · Zasláno: 29. 7. 2009, 18:13:36
Manny
Zkuste implementovat lightbox plugin přímo pro jQuery. Použití je snadné: $(function() { $('#gallery a').lightBox({fixedNavigation:true}); }); a samozřejmě že je k dispozici si lightbox nastavit dle svého. |
||
Manny Profil * |
#5 · Zasláno: 30. 7. 2009, 09:18:29
jso
jenom tohle, co jste minapsal tam mám vložit? V jQuery teprve začínám |
||
jso Profil * |
#6 · Zasláno: 30. 7. 2009, 09:34:50
Manny
samozřejmě musíte připojit i js s pluginem. Tedy přidat řádek: <script type="text/javascript" src="js/jquery.lightbox-0.4.js"></script> kde js/jquery.lightbox-0.4.js je cesta k souboru js. |
||
Manny Profil * |
#7 · Zasláno: 30. 7. 2009, 10:45:45
jso
hm... bohužel i když implementuji lightbox jako jQuery, tak pořád nejde menu s lightboxem dohromady :/ |
||
jso Profil * |
#8 · Zasláno: 30. 7. 2009, 10:47:52
Manny
Myslíš, že by to šlo někde vystavit? Já jsem s tím problém neměl. Samozřejmě <script type="text/javascript" src="slimbox/js/mootools.v1.11.js"></script> <script type="text/javascript" src="slimbox/js/slimbox.js"></script> |
||
Manny Profil * |
#9 · Zasláno: 30. 7. 2009, 11:02:42
jso
jistě že ten starý slimbox jsem vyhodil... ale už se m to podařilo rozchodit - já soubor s menu includoval do index.php a ten kód s jQuery menu jsem měl v tom includovaném souboru - když jsem jej dal do indexu, tak už to jede (když jsem ale tohle samé zkoušel s klasickým Lightboxem, tak to nešlo). No a ještě musím vyřešit problém s zobrazováním obrázků - CLOSE, NEXT... nezobrazují se, i když je cesta správně |
||
jso Profil * |
#10 · Zasláno: 30. 7. 2009, 11:08:13
Manny
„CLOSE, NEXT... nezobrazují se, i když je cesta správně“ zřejmě není :) Předpokládám, že máš vložen styl: <link rel="stylesheet" type="text/css" href="css/jquery.lightbox-0.4.css" media="screen" /> Obrázky jsou v adresáři images, tak jako styl je v css. |
||
Manny Profil * |
#11 · Zasláno: 30. 7. 2009, 11:14:21
právěže ne...
<script type="text/javascript" src="../menu.js"></script> <script type="text/javascript" src="../slimbox2/js/jquery.js"></script> <script type="text/javascript" src="../slimbox2/js/jquery.lightbox-0.5.js"></script> <link rel="stylesheet" type="text/css" href="../slimbox2/css/jquery.lightbox-0.5.css" media="screen" /> cesta musí být správně, protože funguje JS... ale ten testovací soubor mi funguje (co byl jako example na webu), což je zajímavý.. |
||
jso Profil * |
#12 · Zasláno: 30. 7. 2009, 11:17:19
Manny
a v „../slimbox2/images/“ jsou ty obrázky? |
||
Manny Profil * |
#13 · Zasláno: 30. 7. 2009, 11:20:27
jso
ano jsou... už přemýšlím jestli nemám poměnit tu cestu k nim v jquery.lightbox-0.5.js---- ale to je blbost, když ten testovací soubor takhle funguje.. |
||
jso Profil * |
#14 · Zasláno: 30. 7. 2009, 11:23:40
Manny
ten testovací funguje, protože od index.html je k obrázkům cesta imageLoading: 'images/lightbox-ico-loading.gif', // (string) Path and the name of the loading icon imageBtnPrev: 'images/lightbox-btn-prev.gif', // (string) Path and the name of the prev button image imageBtnNext: 'images/lightbox-btn-next.gif', // (string) Path and the name of the next button image imageBtnClose: 'images/lightbox-btn-close.gif', // (string) Path and the name of the close btn imageBlank: 'images/lightbox-blank.gif', // (string) Path and the name of the close btn změň ji |
||
Manny Profil * |
|||
jso Profil * |
#16 · Zasláno: 30. 7. 2009, 12:36:41
Manny
nemáš zač. Bylo by dobré, kdyby zůstávala daná položka menu rozbalena. |
||
Manny Profil * |
#17 · Zasláno: 30. 7. 2009, 14:11:24
jso
nad tím právě špekuluju, jak by se to dalo udělat - doposud jsem tu nabídku nechával rozbalenou pomocí PHP - kdy jsem testoval to, co je v GETu a podle toho nechával submenu skryté/rozbalené... ale je to nešikovné takhle |
||
jso Profil * |
#18 · Zasláno: 30. 7. 2009, 14:13:44
Manny
něco podobného jsem teď dělal pro jednu aplikaci v intranetu. Jelikož to celé jede na AJAXu, tak jsem to dělal javascriptem pomocí cookies. |
||
Manny Profil * |
#19 · Zasláno: 30. 7. 2009, 14:42:19
jso
tak se v tom zkouším trochu pohrabat, ale nevím jak tam přesně zakomponvoat tu cookie $(document).ready(function(){ $(".submenu_item2").hide(); $.cookie('remember', '0', { expires: 10 }); $("div.menu_item2").toggle(function(){ $(this).addClass("active"); }, function () { $(this).removeClass("active"); }); $("div.menu_item2").click(function(){ $(this).next(".submenu_item2").slideToggle("slow,"); }); }); Někde před zpracováním událostí si asi musím vytvořit cookie s nastavenou platností, ale nevím, jak to potom porovnávat a kam to umístit... chtěl jsem to udělat tak, že bych na začátek nastavil remember na 0 jako že je submenu skryto... ale pak nevím co s tím dále |
||
jso Profil * |
#20 · Zasláno: 30. 7. 2009, 14:51:02
Manny
já to dělám tak, že menu je rozbaleno (kdyby náhodou byl js vypnut). Hned za menu volám fci expandViewItems(); Tato fce se stará o rozbalení jednotlivých podmenu z cookie. V .click pro rozbalení/sbalení podmenu mám fci setMenuCookie($(this).attr('id'));. function setMenuCookie(menuItem) { cookieName = 'expandMenuItems'; cookie = getCookie(cookieName); //pokud je položka v cookie, odstraním ji, jinak ji přidám if (cookie.search(menuItem)>-1) { if (cookie.length > menuItem.length) { cookie = (cookie.indexOf(menuItem)==0) ? cookie.replace(menuItem + ";","") : cookie.replace(";" + menuItem,""); } else { cookie = ""; } } else { if (cookie.length == 0) { cookie = menuItem; } else { cookie = cookie + ";" + menuItem } } setCookiePath(cookieName,cookie,0,"/") } Z toho plyne, že každé submenu má jednoznačný identifikátor. Ten ukládám do cookie (jednotlivé rozbalené položky jsou odděleny ;). V expandViewItems(); pak získám danou cookie, udělám z toho pole a cyklem je projdu a rozbalím. |
||
Manny Profil * |
#21 · Zasláno: 30. 7. 2009, 15:04:34
jso
zkusím to udělat nějak podobně |
||
Časová prodleva: 15 let
|
0