2014-02-12 35 views
0

我只有一個工作,但我做了完全相同的下一個div,它不工作?另外我想在擴展內容的底部添加一個關閉鏈接。我有一個div擴展,當閱讀更多點擊,想要一個關閉的鏈接?

見我的小提琴:http://jsfiddle.net/G59nH/3/

$(document).ready(function() { 
$("#clickme").click(function() { 
    $("#content").slideToggle("slow") 
}); 
}); 
+0

爲什麼你使用鏈接滑動div? – fedorSmirnov

+1

你的小提琴中的HTML格式不正確。您應該考慮正確縮進您的代碼。它使查找不匹配標籤的問題等更容易找到。 –

回答

2

您正在使用的ID,但你不能有一個html文件在同一個ID的多個元素。改爲使用類,並根據與點擊鏈接的距離來選擇哪些內容(使用給定的類)來滑動切換。

改變clickme和內容ID的上課後,你可以改變你的js這樣的:

$(document).ready(function() { 
    $(".clickme").click(function() { 
     $(this).closest('.servicesBox').nextAll(".content").first().slideToggle("slow"); 
    }); 
}); 

工作小提琴:http://jsfiddle.net/G59nH/11/

還要注意,你有內<p>標記一些<div>標籤(未固定在小提琴中),這是技術上不合法的語法 - 建議用div(如果您需要它們)替換它們並根據需要用css調整間距。

+0

感謝您的建議,有沒有簡單的方法在擴展內容的底部添加關閉鏈接? @mayabelle –

+0

你的小提琴會打開所有'.content'方塊,我確定他只是想點擊一下就可以展開? – badAdviceGuy

+0

事實證明存在HTML語法錯誤,原始代碼在包含'div'之外關閉了'p'標記,修復了允許'.next('。container')正常工作的問題。查看代碼的[更新的小提琴](http://jsfiddle.net/badAdviceGuy/G59nH/9/)。 – badAdviceGuy

0

的問題是,在你的HTML,你必須用相同的ID兩個元素(在你的情況,「clickme」和「內容」)。聲明

$('#clickme') 

用作'#'後定義id的元素的偵聽器。因此,對於您的情況,您可以通過點擊'clickme'來監聽點擊元素。但是,當你有兩個人時,只有一個人會工作。你想要的是給他們同一個班級(例如'clickme')。如果使用類聽衆

$('.clickme') 

$('.content') 

它應該工作的罰款。爲了區分點擊了哪個元素,你可以使用點擊「clickme」元素的索引:

$('.clickme').click(function(){ 

    var index = $('.clickme').index(this); 
    $('.content').eq(index).slideToggle(); 
}); 
相關問題