2010-04-13 46 views
1

我試圖使用基於JavaScript的手風琴效果來改變一些東西,比如使用輸入按鈕而不是選擇器的鏈接。但由於某種原因,它不起作用。每次我嘗試使用Firefox錯誤控制檯輸出unknown pseudo-class or pseudo-element "visible"。有什麼問題?JavaScript手風琴效應不起作用,與僞類有關嗎?

$("div.example").hide(); 
$("input.exampleButton").click(function(){ 
    $("div.example:visible").slideUp("slow"); 
    $(this).parent().next().slideDown("slow"); 
    //return false; if you don't want the link to follow 
}); 

下面是HTML

input type="button" value="See An Example" class="exampleButton" /> 
<div class="example"> 
    ...content 
</div> 
input type="button" value="See An Example" class="exampleButton" /> 
<div class="example"> 
    ...content 
</div> 

回答

1

可以忽略控制檯的警告。代碼不工作的原因是標記結構與Javascript所做的遍歷不匹配。每個<input>應該位於<div>之內,以便parent().next()的呼叫將從輸入正確地轉到其後的<div class="example">。你也錯過了對輸入的開頭<,但我認爲這是一個複製/粘貼錯誤。

工作標記:

<div> 
    <input type="button" value="See An Example" class="exampleButton" /> 
</div> 
<div class="example"> 
    ...content 
</div> 
<div> 
    <input type="button" value="See An Example" class="exampleButton" /> 
</div> 
<div class="example"> 
    ...content 
</div> 
+0

感謝您的幫助!有沒有一種方法,我可以做到這一點沒有div,並以某種方式只改變JavaScript?我沒有從根本上理解爲什麼它不起作用。 – 2010-04-14 01:40:15

+0

@ Dennis:你可以刪除對'parent()'的調用。然後'next()'將從''到它後面的元素。 – interjay 2010-04-14 09:06:48