úprava chování scriptu na menu – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

úprava chování scriptu na menu – JavaScript, AJAX, jQuery – Fórum – Programujte.comúprava chování scriptu na menu – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

svobodicz0
Newbie
22. 10. 2007   #1
-
0
-

Zdravíčko, měl bych prosbičku. Mám script na menu, které se rozbaluje po mouseOver. Potřebuju ho ale upravit, tak aby se submenu objevovalo až po kliknutí.
Podle kometářů ve scriptu, by měl stačit upravit řádek č. 9. Což sice udělá změnu, že se menu rozjede až po kliknutí. Jenže to, co se mi zobrazí už nezůstane na stránce, ale hned to zmizí. Už jsem zkusil snad všechno, ale pořád se to chová divně. Mohl byste se mi na to někdo kouknou?
Díky moc :smile1:

Nahlásit jako SPAM
IP: 213.180.48.–
Petroff0
Věrný člen
23. 10. 2007   #2
-
0
-

Jestli to zmizí zhruba 3/4 vteřiny po kliknutí, pokaždé za stejnou dobu, tak to dělá možná funkce autohide. Nemám čas to celé studovat, takže je to jen dohad. Zkus potvrdit popř. vyvrátit (změnit timexxx...hodnotu).

Nahlásit jako SPAM
IP: 89.102.211.–
Petroff0
Věrný člen
23. 10. 2007   #3
-
0
-

Tak sorry, autohide je OK. (odpočet začne až když odjedeš s myší)
Jediný případ, kdy to blbne, je IE7 pokud mu nastavíš DOCTYPE-strict - ale to se týká šířky rozbaleného podmenu (je asi 1mm široké :smile20: )
Posílám ti HTML stránku s tvým menu nastaveným na klikání - u mě funguje v ie6 ie7 opeře9 (později zkusím mozzilu).

Nahlásit jako SPAM
IP: 89.102.211.–
insider0
Věrný člen
24. 10. 2007   #4
-
0
-

v FF2 funguje

Nahlásit jako SPAM
IP: 147.32.97.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
svobodicz0
Newbie
24. 10. 2007   #5
-
0
-

díky moc, jdu to odzkoušet :smile1:

Ty vado, to nechápu. Samotný to šlape jak hodinky, ale když to posadím do redakčního systému, tak mám utrum :smile13:
Porovnával jsem kód který jsi mi dal s tím , co jsem měl a rozdíl jsem nenašel. Asi zůstane při tom, že to bude vyjížděcí.

Nahlásit jako SPAM
IP: 213.180.48.–
insider0
Věrný člen
24. 10. 2007   #6
-
0
-

nerusi ti to neco v tom RS?

Nahlásit jako SPAM
IP: 147.32.97.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
Petroff0
Věrný člen
25. 10. 2007   #7
-
0
-

O něčem bych věděl.
Mezitím jsem předělal script, aby fungoval také v IE7 ve standardním režimu - přikládám.
(je testovaný jak v quirku tak ve standovi v těchto prohlížečích: opera9, ff2, ie6, ie7 :smile2: )

K chybnému chování po zasazení do kontextu stránky:
Pokud by nefungoval vůbec, tak ti mohl jiný JS přepsat window.onload.
Problém je,že aby se to dalo určit, je třeba
[seznam]vědět v kterých browserech, jak přesně se menu chová, jaké změny jsi v css a js udělal (zákl.info)[/seznam][seznam]Anebo dej k dispozici kod stránky s menu a to: celý html + přilinkované js,css [/seznam][seznam]Úplně nejlepší je poslat link na web - jelikož k ladění používám Firebug, který umí virtuálně a za chodu - přímo u prohlížené stránky - editovat html,css a všechny JS objekty účastnící se procesů (akorát neumí upravenou verzi SAVEnout na HD; musí se to přepsat ručně) tak mi to vyhovuje, hlavně se to testuje v přirozeném prostředí.
[/seznam]
PS.objevil jsem forum, kde se vyřešilo použití našeho scriptu pro více než 1menu na stránce (nornálně to nejde....)

Nahlásit jako SPAM
IP: 89.102.211.–
svobodicz0
Newbie
25. 10. 2007   #8
-
0
-

To insider :
jj, taky mě to napadlo, tak jsem to krapet rozpitval a dvě funkce které menu generou jsou tyto:



function NavBar_TopLevel ()
{
echo "<!--- START MENU HTML --><div id=\"dhtmlgoodies_menu\"><ul>";
global $IW;
$result=$IW->DB_Query("select * from ".TABLE_DOCS." where parent_id='0' and is_active='1' order by nav_order");
for($i=0;$i<$IW->DB_CountResult($result);$i++)
{

echo "<li><a href=\"?D=".$IW->DB_Result($result,$i,"id")."\">".$IW->DB_Result($result,$i,"link_text")."</a>";

if($IW->Docs_HasSubDocuments($IW->DB_Result($result,$i,"id"))){NavBar_Recurse ($IW->DB_Result($result,$i,"id"));}
}
$IW->DB_FreeResult($result);
echo "</ul></li></div><!-- END MENU HTML-->";
}





function NavBar_Recurse ($id)
{
global $IW;
$result=$IW->DB_Query("select * from ".TABLE_DOCS." where parent_id='".$id."' and is_active='1' order by nav_order");
//echo "<div class=\"dhtmlgoodies_subMenu\">";
echo "<ul>";
for($i=0;$i<$IW->DB_CountResult($result);$i++)
{
echo "<li><a href=\"?D=".$IW->DB_Result($result,$i,"id")."\">".$IW->DB_Result($result,$i,"link_text")."</a></li>";
NavBar_Recurse ($IW->DB_Result($result,$i,"id"));
}
echo "</ul>";
//echo "</div>";
$IW->DB_FreeResult($result);
}


Tak je fakt, že tady ty tagy pro submenu jsou trochu jinak. Zkusím to upravit, aby to vygenerovalo úplně stejný kód jako statická verze. Chápu to, že se submenu generuje teprve po akci myškou. :smile19:

Nahlásit jako SPAM
IP: 213.180.48.–
Petroff0
Věrný člen
26. 10. 2007   #9
-
0
-

Myslím že jsi na to kápl. Pokud se ti podařilo vygenerovat stejnou strukuru menu, pak ti DHTML funkce=rozevírání a zavírání bude fungovat ale jen tehdy budeš-li používat místo showSubOnMouseOver=false hodnotu showSubOnMouseOver=true. Totiž tohle menu má jeden nedostatek - pokud je v TOP-LEVEL menu použita v <a> místo href="#" funkční adresa , dojde místo vysunutí submenu načtení stránky (a to i v případě adresy např. "?D=XX" ,což je případ tvého RS)

Nicméně povedlo se mi to opravit, tahle další verze scriptu načte stránku z odkazu TOPmenu jen má-li uživatel vypnutý JS (což je v pořádku).

Nahlásit jako SPAM
IP: 89.102.211.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 21 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý