2012-10-09 2 views
0

내 웹 사이트의 페이지에 표준 메뉴를 표시하고 싶습니다. 나는 아래와 같은 파일을 포함 사용하고 있습니다 :자바 스크립트로 포함 파일 편집

<div class="header box"> 
<ul class="nav box"> 
<li class="current" id="home"><a href="index.php" onclick="current('home')">Home</a></li> 
<li class="" id="onlineSchedule"><a href="onlineSchedule.php" onclick="current(this)">Online Schedule</a></li> 
<li class="" id="partners"><a href="partners.php" onclick="current(this)">Partners/Centers</a></li> 
<li class="" id="services"><a href="services.php" onclick="current(this)">Services</a></li> 
<li class="" id="products"><a href="products.php" onclick="current(this)">Products</a></li> 
<li class="" id="newsHighlights"><a href="newsHighlights.php" onclick="current(this)">News/Highlights</a></li> 
<li class="" id="signup"><a href="signup.php" onclick="current(this)">Sign Up!</a></li> 
<li class="" id="feedback"><a href="feedback.php" onclick="current(this)">Feedback</a></li> 
</ul> 

하지만 클래스가 "현재"클래스는 메뉴에있는 링크를 강조 나는 다른 페이지를 클릭 할 때마다 변경하고 싶습니다. 어떻게해야합니까?

<style type="text/css"> 
.current { 
    color: red; 
} 
.current a { 
    color: green; 
} 
</style> 
<div class="header box"> 
<ul class="nav box"> 
<li class="current" id="home"><a href="index.php" onclick="current('home')">Home</a></li> 
<li class="" id="onlineSchedule"><a href="onlineSchedule.php" onclick="current(this)">Online Schedule</a></li> 
<li class="" id="partners"><a href="partners.php" onclick="current(this)">Partners/Centers</a></li> 
<li class="" id="services"><a href="services.php" onclick="current(this)">Services</a></li> 
<li class="" id="products"><a href="products.php" onclick="current(this)">Products</a></li> 
<li class="" id="newsHighlights"><a href="newsHighlights.php" onclick="current(this)">News/Highlights</a></li> 
<li class="" id="signup"><a href="signup.php" onclick="current(this)">Sign Up!</a></li> 
<li class="" id="feedback"><a href="feedback.php" onclick="current(this)">Feedback</a></li> 
</ul> 
<script type="text/javascript"> 
function current(page) 
{ 
    document.getElementById("home").setAttribute("class", ""); 
    document.getElementById("onlineSchedule").setAttribute("class", ""); 
    document.getElementById("partners").setAttribute("class", ""); 
    document.getElementById("services").setAttribute("class", ""); 
    document.getElementById("products").setAttribute("class", ""); 
    document.getElementById("newsHighlights").setAttribute("class", ""); 
    document.getElementById("signup").setAttribute("class", ""); 
    document.getElementById("feedback").setAttribute("class", ""); 

    document.getElementById(page).className = "current"; 
} 

current("home"); 
</script> 

난 당신이 같은 링크를 포맷하고 싶었 겠지 :

function current(page) 
{ 
    //alert(page); 
    document.getElementById("home").setAttribute("class", ""); 
    document.getElementById("onlineSchedule").setAttribute("class", ""); 
    document.getElementById("partners").setAttribute("class", ""); 
    document.getElementById("services").setAttribute("class", ""); 
    document.getElementById("products").setAttribute("class", ""); 
    document.getElementById("newsHighlights").setAttribute("class", ""); 
    document.getElementById("signup").setAttribute("class", ""); 
    document.getElementById("feedback").setAttribute("class", ""); 

    document.getElementById(page).className += "current"; 
    var temp = document.getElementById("home").getAttribute("class"); 
    alert(temp); 
} 
+0

className을 사용해 보셨습니까? document.getElementById ("home"). className + = "clicked"; – scusyxx

+0

['jQuery'] (http://jquery.com/)은 인생을 훨씬 쉽게 만들어줍니다 :) – Nemoden

+0

자바 스크립트 부분이 완전하지 않습니다. 함수를 만들었지 만 함수가 실행되지 않았습니다. 귀하의 자바 스크립트의 더 많은 부분을 포함시킬 수 있습니까? – VKen

답변

1

여기 작업 코드의 예 아래 shwon 나는 자바 스크립트를 시도했지만 사전에 ... thnx 작동하지 않습니다 잘, 그래서 나는 현재의 링크를 위해 CSS를 넣을 곳인 .current a { }을 추가하는 방법을 보여 주었다. .current { }은 대부분 목록 항목에만 영향을 미칩니다.

+0

그것의 작동하지 않습니다 .. 현재 클래스에 대한 CSS 서식이 나타나지 않습니다 ... pls는 링크가 topLinks.php라는 PHP 파일에 있으며 내 모든 파일에 포함되어 있습니다 ... 이렇게 : < ? php include 'topLinks.php'; ?> shud 자바 스크립트를 topLinks.php 파일이나 웹 페이지 파일에 넣으시겠습니까? ive는 둘 다 시도했다, 그들은 일하지 않는다 .. 그리고 클래스가 변경되었는지 확인하기 위해 ive 테스트 .. 만약 당신이 alert 함수를 발견한다면 ... 클래스가 현재로 바뀌 었음을 리턴한다. 그러나 포맷팅은 나타나지 않는다 .. : ( – user1703514

+0

해당 클래스에 대한 현재 CSS를 게시물에 추가하십시오. 자바 스크립트는 링크를 따라야하거나 'body'의 'onload'를 실행해야합니다. – Rhyono

+0

몸의 부하 !!!! 그게 효과가 있습니다! tq so much .. . – user1703514

관련 문제