ďťż

[javascript] zmiana indetyfikatora id elementu

       

Podstrony


telcocafe

witam,
mam taki problem, chce stworzyć menu, tak żeby nazwa strony na której obecnie jesteśmy wyświetlana była na innym tle, myślałem żeby zrobic to w javascript poprzez zmiane identyfikatora id elementu, tylko niestety nie znam zbyt dobrze java script, może ktoś mógłby mi pomóc ewentualnie podpowiedzieć inny sposób
A tak ogólnie to chciałem to zrobić tak
<ul>
<li><a href="">Strona1</a></li>
<li><a href="">Strona2</a></li>
<ul>

i wtedy gdy klikniemy jakiś link powinno byc tak, np dla Strony1
<ul>
<li id="current"><a href="">Strona1</a></li>
<li><a href="">Strona2</a></li>
<ul>



Hm. Strona jest zrobiona w JavaScripcie czy PHP? Bo niewiele z tego wynika. W JS robisz coś takiego:var otworzPodstrone = function(id) { // tutaj obsługa przełączania stron var menu = document.getElementById('id_menu').getElementsByTagName('li'); // pobieramy wszystkie elementy listy for (var i = 0; i < menu.length; i++) { menu[i].className = ''; // usuwamy klasę } document.getElementById(id + '_link').parendNode.className = 'klasa_wybranego_elementu'; // ustawiamy klasę dla wybranego elementu, przy czym każdy link ma id, np., jest boks z id="glowna", więc link będzie miał id="glowna_link" };Oczywiście podałeś za mało szczegółów, więc ciężko tutaj jest cokolwiek ustalić. No i do oznaczania takich rzeczy nie używaj identyfikatorów. Lepiej jest używać klas. Wtedy jest większa kontrola nad logiką.

Strona jest zrobiona w html+css z elementami javascript, bez PHP, chce dokonywać częstych zmian w menu, i nie chce zmieniać tego na wszystkich podstronach, więc pomyślałem że mogę dołączyć plik z listą linków,a mógłbyś mi wytłumaczyć ten kod bo tak średnio go rozumiem

Czego konkretnie nie rozumiesz? Bo ja to zrobiłem w sposób taki, że Ty masz jeden plik z podstronami, ale nie wiem jak to wygląda u Ciebie. Może pokaż swój kod JS, to się go przerobi tak, by było wedle Twojego zamysłu.



ok, mam kilka podstron z tekstem i menu do tego
np:

strona1|strona2|strona3

i chciałbym żeby po wybraniu któreś ze stron zmieniło się podświetlenie pod elementem menu, np. strona2, i żeby trwało dopóki nie zmienimy strony na inną
i wtedy:

strona1|strona2|strona3

chciałem umieścić menu o osobnym pliku, żeby w razie czego nie modyfikować wszystkich podstron.
Myślę że da się to zrobić w javascript, tylko nie kumam tego języka jeszcze zbyt dobrze, i chciałem wiedzieć jak to mniej więcej zrobić, żeby działało, myslałem właśnie o podmianie indtyfikatora lub klasy w linku

Hm. Czyli Ty nie masz jeszcze nic? Czy może jednak coś już masz? Bo jeśli masz, to używasz document.write() czy document.getElementById()?

no jeszcze nie mam nic:)

Wyskrobalem coś, tylko nie działa tak jak chciałem, w przypadku kliknięcia odnośnika otwiera się strona, i niestety kolor sie nie zmienia, czy można jakoś przekazać informacje do następnej strony, żeby podświetlało dany link??

A to mój kod:
<!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" lang="pl-PL">
<head>
<title>Strona z formularzem</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />

<script type="text/javascript">
function dodajZdarzenie(odnosnik, zdarzenie, funkcja){

if(odnosnik.addEventListener){
odnosnik.addEventListener(zdarzenie, funkcja, false);

} else {
odnosnik.atachEvent("on"+zdarzenie, funkcja);
alert("działa2");
}
}
function przypisz(){
podswietl();
var elements = document.getElementById('menu').getElementsByTagName('a');
for(var i =0 ; i < elements.length; i++) {
dodajZdarzenie(elements[i], "click", zmien);
}
}
function zmien() {
document.cookie ="id="+this.id;
document.write(document.cookie);
}
function podswietl(){

var odnosnik = this.id;

var element=document.getElementById(odnosnik);

alert(element.parentNode.tagName);
element.parentNode.className = "current";

}
dodajZdarzenie(window,'load',przypisz);
</script>

<style type="text/css">
ul#tabsHeader{}
ul#tabsHeader li{
background-color:#CC0;
}
ul#tabsHeader li.current {
background-color:#F30;
}
</style>
</head>

<body>

<div id="menu">
<ul id="tabsHeader">
<li><a href="cos2.html" id="link1">cos</a></li>
<li><a href="#" id="link4">link2</a></li>
<li><a href="#" id="link3">link3</a></li>
<li><a href="#" id="link4">link4</a></li>
<li><a href="#" id="link5">link5</a></li>
<li><a href="#" id="link6">link6</a></li>
</ul>
</div>
</body>

</html>

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.