Pereiti prie turinio

Problema su javascript


Rekomenduojami pranešimai

Sveiki,

 

Susidūriau su problema kurdamas menu, reikia kad paspaudus menu pasiliktų kitoks fonas, nei esantis visada įjungtas. Dabartinis kodas užsifiksuoja kitą paveiksliuką, bet neatšoka. Taigi kame problema?

 

Javascript kodas:

<script type=text/javascript>
function changeStyle(elem) {
  var chNodes=elem.parentNode.childNodes.length;
  for (i = 0; i < chNodes.length; i++) {
     elem.parentNode.childNodes[i].style.backgroundImage="";
  }
  elem.style.backgroundImage="url(images/mygtukashover.png)";
}
</script>

 

O čia html kodas

 

<div id="menu">
    <ul>
     <div class="accordionButton"><li onclick="changeStyle(this);"><a href="#">Linkas</a></li></div>
     <div class="accordionButton"><li onclick="changeStyle(this);"><a href="#">Linkas</a></li></div>
    </ul>
</div>

 

Dėkui už pagalbą

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gal tavo fonas turėtų pasikeisti ne paspaudus mygtuką, bet užvedus ant laukelio pele (ir "atšokti" pelę patraukus)? Tokiu atveju naudok šiuos JS metodus: http://www.quirksmode.org/dom/events/mouseover.html , bet ne onclick().

 

Galbūt aš kažką ne taip suprantu. Kada fonas turi "atšokti". Patraukus pelę, dar sykį paspaudus ant to paties meniu punkto ar paspaudus ant kito meniu punkto?

 

Jeigu reikia, kad "hover" fonas būtų tik po paskutiniu paspaustu laukeliu, pabandyk tokį skriptą:

<script type=text/javascript>
function changeStyle(elem) {
  var chNodes=document.getElementById('menu').getElementsByTagName('*');
  for (i = 0; i < chNodes.length; i++) {
     chNodes[i].style.backgroundImage="";
  }
  elem.style.backgroundImage="url(images/mygtukashover.png)";
}
</script>

 

Atkreipk dėmesį, kad:

1. tavo pateiktame skripte tu kintamajam "chNodes" bandai priskirti tėvinio elemento vaikų elementų kiekį vietoje to, kad priskirtum pačių vaikų elementų masyvą;

2. tavo tėvinis mazgas turėtų būti "meniu", be realiai dabar tu pasiimi "accordionButton".

Redagavo TekstuVertejas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taip Jūs supratote būtent taip kaip reikia, tik gal žinote ką reikėtų daryt pvž aš dabar paspaudžiu mygtuką, kuris mane nukreipia į kitą puslapį bet meniu turi būti užsifiksavęs, nes šiuo atveju po perkrovimo mygtukas atšoksta ir tampa neaktyvus.

Redagavo MantisLTU
Nuoroda į pranešimą
Dalintis kituose puslapiuose

<script type=text/javascript>
$(document).ready(function(){

 $('div.accordionButton li').click(function(){
      $('div.accordionButton li').css('background-image',''); 
      $(this).css('background-image','url(images/mygtukashover.png)');
 });

});

</script>

 

su jquery viskas zymiai paprasciau

Redagavo kaunomanas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...