Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 8 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.08.09
Prihlásený: 14.12.17
Príspevky: 14
Témy: 5
Príspevok NapísalOffline : 16.02.2011 21:28

Zdravim riesim mensi problem v JS.

mam kod v html :

Kód:
<div id="_ctl0_Fmenu_PriceListByTypes" class="TableCss">
   <div  class="HeaderCss" align="left">
      <a href="..." id="PriceListByTypesFullLink">Kategória&nbsp;»</a>
   </div>
   <ul class="PLHidsMenu">
      <li  class="PL1"><span>...</span></li>
      <li  class="PL2"><a href="" title=""></a></li>
      <li  class="PL2"><a href="" title=""></a></li>
   </ul>   
</div>


a k tomu JS :

Kód:
function SDMenu(id) {
   if (!document.getElementById || !document.getElementsByTagName)
      return false;
   this.menu = document.getElementById(id);
   this.submenus = this.menu.getElementsByTagName("div");
   this.remember = true;
   this.speed = 3;
   this.markCurrent = true;
   this.oneSmOnly = false;
}
SDMenu.prototype.init = function() {
   var mainInstance = this;
   for (var i = 0; i < this.submenus.length; i++)
      this.submenus[i].getElementsByTagName("span")[0].onclick = function() {
         mainInstance.toggleMenu(this.parentNode);
      };
   if (this.markCurrent) {
      var links = this.menu.getElementsByTagName("a");
      for (var i = 0; i < links.length; i++)
         if (links[i].href == document.location.href) {
            links[i].className = "current";
            break;
         }
   }
   if (this.remember) {
      var regex = new RegExp("sdmenu_" + encodeURIComponent(this.menu.id) + "=([01]+)");
      var match = regex.exec(document.cookie);
      if (match) {
         var states = match[1].split("");
         for (var i = 0; i < states.length; i++)
            this.submenus[i].className = (states[i] == 0 ? "collapsed" : "");
      }
   }
};
SDMenu.prototype.toggleMenu = function(submenu) {
   if (submenu.className == "collapsed")
      this.expandMenu(submenu);
   else
      this.collapseMenu(submenu);
};
SDMenu.prototype.expandMenu = function(submenu) {
   var fullHeight = submenu.getElementsByTagName("span")[0].offsetHeight;
   var links = submenu.getElementsByTagName("a");
   for (var i = 0; i < links.length; i++)
      fullHeight += links[i].offsetHeight;
   var moveBy = Math.round(this.speed * links.length);
   
   var mainInstance = this;
   var intId = setInterval(function() {
      var curHeight = submenu.offsetHeight;
      var newHeight = curHeight + moveBy;
      if (newHeight < fullHeight)
         submenu.style.height = newHeight + "px";
      else {
         clearInterval(intId);
         submenu.style.height = "";
         submenu.className = "";
         mainInstance.memorize();
      }
   }, 30);
   this.collapseOthers(submenu);
};
SDMenu.prototype.collapseMenu = function(submenu) {
   var minHeight = submenu.getElementsByTagName("span")[0].offsetHeight;
   var moveBy = Math.round(this.speed * submenu.getElementsByTagName("a").length);
   var mainInstance = this;
   var intId = setInterval(function() {
      var curHeight = submenu.offsetHeight;
      var newHeight = curHeight - moveBy;
      if (newHeight > minHeight)
         submenu.style.height = newHeight + "px";
      else {
         clearInterval(intId);
         submenu.style.height = "";
         submenu.className = "collapsed";
         mainInstance.memorize();
      }
   }, 30);
};
SDMenu.prototype.collapseOthers = function(submenu) {
   if (this.oneSmOnly) {
      for (var i = 0; i < this.submenus.length; i++)
         if (this.submenus[i] != submenu && this.submenus[i].className != "collapsed")
            this.collapseMenu(this.submenus[i]);
   }
};
SDMenu.prototype.expandAll = function() {
   var oldOneSmOnly = this.oneSmOnly;
   this.oneSmOnly = false;
   for (var i = 0; i < this.submenus.length; i++)
      if (this.submenus[i].className == "collapsed")
         this.expandMenu(this.submenus[i]);
   this.oneSmOnly = oldOneSmOnly;
};
SDMenu.prototype.collapseAll = function() {
   for (var i = 0; i < this.submenus.length; i++)
      if (this.submenus[i].className != "collapsed")
         this.collapseMenu(this.submenus[i]);
};
SDMenu.prototype.memorize = function() {
   if (this.remember) {
      var states = new Array();
      for (var i = 0; i < this.submenus.length; i++)
         states.push(this.submenus[i].className == "collapsed" ? 0 : 1);
      var d = new Date();
      d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000));
      document.cookie = "sdmenu_" + encodeURIComponent(this.menu.id) + "=" + states.join("") + "; expires=" + d.toGMTString() + "; path=/";
   }
};



no nechce mi to fungovat... problem je aj v tom, ze ten HTML kod sa menit nemoze...

prosim poradte... dik...


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 17.02.2011 17:31

"Nechce mi to fungovať" nie je vysvetlenie problému, takže ak chceš, aby ti niekto poradil, budeš musieť napísať, čo to má robiť a čo to robí teraz a ideálny by bol aj odkaz na živú ukážku.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.08.09
Prihlásený: 14.12.17
Príspevky: 14
Témy: 5
Príspevok Napísal autor témyOffline : 17.02.2011 21:37

trocha som to prerobil... takto to vyzera... nejdu mi tie jednotlive kategorie rozkliknut...


Kód:
http://expertcomp.sk/menu.html


Offline

Čestný člen
Čestný člen
Uprava javascriptu

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.02.2011 21:59

Nejdú? Podľa mňa ti idú, až moc ti idú.
Čo podľa teba robí tento kód?
Kód:
$('.PL1').click(function () {
$('ul li.PL2').slideToggle('medium');
});


Poradím ti - myslíš, že sa otvorí len tá druhá úroveň, ktorá patrí tej prvej, na ktorú si klikol? Alebo sa rozbalia všetky položky druhej úrovne?
Keď odpovieš na tieto otázky a zistíš, kde robíš chybu, tak by som na tvojom mieste začal tým, že by som položky druhej úrovne "vnoril" do položiek prvej úrovne. Čiže <li> prvej úrovne bude v sebe obsahovať celý zoznam <ul> druhej úrovne. Chápeš?







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.08.09
Prihlásený: 14.12.17
Príspevky: 14
Témy: 5
Príspevok Napísal autor témyOffline : 17.02.2011 22:21

shaggy chapem, ale problem je v tom ze ten HTML kod je pevne dany a nedokaze sa zmenit... ak by sa dal zmenit uz davno to spravim to mi ver...


Offline

Čestný člen
Čestný člen
Uprava javascriptu

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.02.2011 22:48

Tak si odmysli tú poslednú vetu môjho príspevku - stále platí, že rozbaľuješ všetky položky druhej úrovne. V tomto prípade budeš musieť roztvárať nasledujúceho "súrodenca", ktorý má class PL2.







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.08.09
Prihlásený: 14.12.17
Príspevky: 14
Témy: 5
Príspevok Napísal autor témyOffline : 18.02.2011 4:41

no tak to uplne nechapem... v scripte som snad upravoval a skusal vsetko... no nic i tak dik...


Offline

Čestný člen
Čestný člen
Uprava javascriptu

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 18.02.2011 15:13

Ani by to nefungovalo, zle som si pozrel tvoj kód - ty vieš "rozbaliť" nasledujúce LI s class PL2, ale neviem si predstaviť, ako by si rozbalil tie ďalšie. Proste je to zle napísaný html kód a kým ho nezmeníš, nič s tým neurobíš. Netuším, prečo ho nemôžeš meniť, ale je to jediná možnosť.







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Odpovedať na tému [ Príspevkov: 8 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Uprava JavaScriptu ....

v JavaScript, VBScript, Ajax

4

684

22.01.2011 10:46

DeeJay3 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vyuka Javascriptu

v JavaScript, VBScript, Ajax

4

743

07.04.2009 16:01

juho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. blokovanie javascriptu

v JavaScript, VBScript, Ajax

8

1012

12.02.2009 8:38

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Podpora Javascriptu

v JavaScript, VBScript, Ajax

2

1007

06.03.2007 17:39

mokus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Spustenie javascriptu z URL

v JavaScript, VBScript, Ajax

2

644

11.08.2009 23:00

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. <title> pomocou javascriptu

v JavaScript, VBScript, Ajax

8

830

10.10.2007 19:02

zero0x Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Select a option pomocou JavaScriptu

v JavaScript, VBScript, Ajax

8

695

28.12.2008 23:12

blackman545 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Blokovnie IP pomocou javascriptu - Chyba

v JavaScript, VBScript, Ajax

11

856

22.10.2011 10:33

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Údaje z Javascriptu na server

v JavaScript, VBScript, Ajax

1

439

27.07.2016 12:49

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php script na zistenie zapnutia javascriptu

v PHP, ASP

18

1815

10.07.2008 9:56

GoodWill Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zapis do txt suboru pomocou javascriptu

v JavaScript, VBScript, Ajax

11

733

22.01.2015 23:15

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. načitanie dát z databazy do javascriptu

v JavaScript, VBScript, Ajax

15

926

05.09.2011 21:20

Pablo Montero Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prehladávač mi obmedzil zobrazovanie obsahu javascriptu

v JavaScript, VBScript, Ajax

14

973

22.01.2007 17:03

imnotwhafo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Viete, prečo vás bolí hlava z javascriptu?

v JavaScript, VBScript, Ajax

2

1475

16.04.2011 19:06

chrono Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Stane sa nový programovací jazyk Dart náhradou JavaScriptu?

v Novinky

5

628

21.10.2011 15:46

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dart 1.0, alternatíva JavaScriptu, pripravený pre vývojárov

v Novinky

2

385

20.11.2013 7:55

Johnnny Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra