2010-11-14 72 views
0

我曾出這90%左右,但似乎無法得到最後的10%:顯示/隱藏的div提交

我有要求用戶選擇一個位置的形式。在選擇時,我希望頁面(和請求表單)淡入淡出,而新的div將隨定價信息一起褪色。

現在,一切按第一個選定選項(novato)的預期工作,但在列表中的任何其他選項中,頁面和請求表單div都淡出,並且新的定價div不可見。

我很難過,而且很確定我只是錯過了一些愚蠢的東西(作爲一個新手)。任何幫助表示讚賞!

申請表:

<form id="locations"> 
<select> 
<option>Choose a location</option> 
<option></option> 
<option id="novato" value="novato">Novato</option> 
<option id="sanleandro" value="sanleandro">San Leandro</option> 
<option id="livermore" value="livermore">Livermore</option> 
<option id="sanjose" value="sanjose">San Jose</option> 
</select> 
<input type="submit" id="submit" value="go"/> 
</form> 

的JS:

> $(function() { 
> $("#locations").submit(function() { 
>  if ($("#novato").attr("selected")) { 
>   $("#pricing_novato").fadeIn("normal"); 
>   $("#page").fadeTo("normal", 0.1); 
>   $("#pricing_novato").css({top:"0",left:"50%",margin:"20px 
> 0 0 -"+($("#pricing_novato").width()/
> 2)+"px"}); 
>   $("#pricing_selector").fadeOut("normal");  
      }else if($("#sanleandro").attr("selected")) { 
>   $("#pricing_sanleandro").fadeIn("normal"); 
>   $("#page").fadeTo("normal", 0.1); 
>   $("#pricing_sanleandro").css({top:"0",left:"50%",margin:"20px 
> 0 0 
> -"+($("#pricing_sanleandro").width()/2)+"px"}); 
>   $("#pricing_selector").fadeOut("normal");  
      }else if($("#livermore").attr("selected")) { 
>   $("#pricing_livermore").fadeIn("normal");   $("#page").fadeTo("normal", 0.1); 
>   $("#pricing_livermore").css({top:"0",left:"50%",margin:"20px 
> 0 0 
> -"+($("#pricing_livermore").width()/2)+"px"}); 
>   $("#pricing_selector").fadeOut("normal");  
      }else if($("#sanjose").attr("selected")) { 
>   $("#pricing_sanjose").fadeIn("normal"); 
>   $("#page").fadeTo("normal", 0.1); 
>   $("#pricing_sanjose").css({top:"0",left:"50%",margin:"20px 
> 0 0 -"+($("#pricing_sanjose").width() 
>/2)+"px"}); 
>   $("#pricing_selector").fadeOut("normal");  
      } 
    }); 
}); 

的div:

<div id="pricing_novato">content</div> 
<div id="pricing_sanleandro">content</div> 
<div id="pricing_livermore">content</div> 
<div id="pricing_sanjose">content</div> 

回答

0

的想法值:http://jsfiddle.net/Efb32/6/

我改變了一些東西,看看代碼:增加了一些風格,改變了css(...)變化,從而它適合,加return false提交表單代碼,以便它在的jsfiddle並添加#page#pricing_selector的div是用於代碼中。它看起來對於所有4個選項都是一樣的。

我想我給出的輸出我不明白是什麼問題 - 你可以檢查jsfiddle上的代碼是否按照您的預期邏輯運行?

+0

哇!真奇怪。我看到你做了什麼,仍然無法分辨爲什麼我會打破。這裏是實時鏈接:http://76.103.255.69/earthcare/Products_residential/index2.aspx – Jenn 2010-11-14 23:04:33

+0

我的猜測是它與樣式有關。嘗試使用相同的'css(...)'行並添加'position:relative' style - 試驗一下,看看是否有問題。 – 2010-11-14 23:07:40

+0

我必須在樣式表或我的包含文件中遇到問題,但解決方案正常運行!非常感謝! – Jenn 2010-11-14 23:23:33

0

你試過分配當前選定的選項給一個變量,然後測試而不是?

var selectedLocation = $("select option:selected").val(); 

而且,如果#page是你的容器,就不會這樣:容器內包含

$("#page").fadeTo("normal", 0.1); 

淡出一切嗎?我只是假設,因爲我在你的代碼中看不到它。

你也可以嘗試把一些控制檯記錄或乾脆提醒您正試圖測試給你,我剛剛創建了一個用的jsfiddle代碼發生的事情在你的代碼

+0

非常感謝您的回覆!我向轉換添加了警報,以確認我的選擇是正確的,並且該部分工作正常。 (好主意!)定價div實際上是在包含文件中,並且設置在頁面div之外(但在body內部),因此該部分也在工作。 – Jenn 2010-11-14 22:56:22

+0

我試圖找出var selectedLocation = $(「select option:selected」)。val();部分。我的測試看起來像這樣嗎?:if($(「#novato」)=「selectedLocation」) – Jenn 2010-11-14 22:57:56

+0

對不起......認真的新手! – Jenn 2010-11-14 22:58:20