2011-07-11 66 views
0

JS:環節之間的切換jQuery的

<script type="text/javascript"> 
    <script type="text/javascript"> 
function slideUpAll(id){ 
if(id != "about") 
    $('#about').slideUp(); 
if(id != "team") 
    $('#team').slideUp(); 
if(id != "contact") 
    $('#contact').slideUp(); 
if(id != "job") 
    $('#job').slideUp(); 
} 
function sd_about(){$('#about').slideDown("slow");} 
function sd_team(){$('#team').slideDown("slow");} 
function sd_contact(){$('#contact').slideDown("slow");} 
function sd_job(){$('#job').slideDown("slow");} 
$(function(){ 
    $("#about").delegate("anchorOrDivOrImg", "mousedown", function(e){ 

    slideUpAll(e.target.id); 
    }); 
}); 
</script> 

HTML:

 <div id="nav"> 
      <ul> 
      <li><a href="#" onclick="sd_about()">About</a></li> 
      <li><a href="#" onclick="sd_team()">Team</a></li> 
      <li><a href="#" onclick="sd_contact()">Contact</a></li> 
      <li><a href="#" onclick="sd_job()">Jobs</a></li> 
      </ul> 
     </div> 
<div id="about"> 
     <div id="about_left"> 
      about 
     </div><!--about_left--> 
     <div id="about_right"> 
      <img src="img/book.png" width="256" height="161" alt="LogicPad eBooks" /> 
     </div> 

     <div id="clear"> </div> 
</div><!--about--> 
<div id="team"> 
<h1>team</h1> 
</div> 
<div id="contact"> 
<h1>contAct</h1> 
</div> 
<div id="job"> 
<h1>job</h1> 
</div> 

我試圖做到:如果你點擊一個鏈接,然後點擊另一個鏈接,第一個鏈接縮回,最後點擊的鏈接展開。

它現在在做什麼:如果你點擊一個鏈接,然後點擊另一個鏈接,它基本上只是把兩組內容放在一個下面。

有人可以幫我嗎?我究竟做錯了什麼?請在回答中顯示一些源代碼。

+1

hmmmm - 我看不到你的標記的任何鏈接。另外我看不到你的jQuery動畫引用的任何元素。 – calumbrodie

+0

請參閱更新。 – Jshee

回答

1

試試這個

<script type="text/javascript"> 
function slideUpAll(id){ 
if(id != "about") 
    $('#about').slideUp(); 
if(id != "team") 
    $('#team').slideUp(); 
if(id != "contact") 
    $('#contact').slideUp(); 
if(id != "job") 
    $('#job').slideUp(); 
} 
function sd_about(){$('#about').slideDown("slow");} 
function sd_team(){$('#team').slideDown("slow");} 
function sd_contact(){$('#contact').slideDown("slow");} 
function sd_job(){$('#job').slideDown("slow");} 
$(function(){ 
    $("#about").delegate("anchorOrDivOrImg", "mousedown", function(e){ 

    slideUpAll(e.target.id); 
    }); 
}); 
</script> 
+0

這沒有什麼不同。 – Jshee

+0

你在委託選擇器中指定了什麼? – ShankarSangoli

+0

我甚至不知道你是如何調用這4個函數的。 – ShankarSangoli

0

首先給所有的父導航一個類,例如nav

然後每次的slideToggle之前,做$(".nav").slideUp("slow")

+0

請問您可以顯示代碼嗎? – Jshee

+0

那麼你必須發佈你的所有代碼,你只發布了代碼片段。給我完整的HTML/jQuery,然後我很樂意提供幫助。一個http://jsfiddle.net將是最好的。 – switz

0

沒有看到你的鏈接,也許你可以從這個例子的jsfiddle受益:drop down menus

我想也許你需要包含一個點擊功能。現在,我只能看到你創建了函數但沒有調用函數。你必須要麼調用從鏈接的功能的onclick,或在jQuery的是這樣的:

$('a').click(function(){ 
//code here 
});