2013-10-28 422 views
0

我正在編寫一個小腳本來顯示/隱藏div,當其他div被點擊時,但我無法獲得第二個可點擊的div。點擊顯示/隱藏div

這裏是我到目前爲止的代碼:

$(document).ready(function(){ 
    $('div#ordontia').click(function(){ 
     $(this).next('div#ordontia2').slideToggle("slow"); 
    }); 
}); 

http://jsfiddle.net/65AK2/1/

每一個「按鈕」點擊帶有描述的新的div應該出現在表的底部時間。 (底部的藍色格)。如果另一個按鈕被點擊,則前面的描述應該關閉,另一個應該在同一個地方打開。 (尚未實現)

在此先感謝您的幫助!

+1

哪裏是你的'#DIV ordontia2'直接去做在小提琴中? – ComFreek

+0

@ComFreek它在底部。 –

+0

@biip:你想每個按鈕都有這個嗎?那麼你應該與你的'botaomedicina'類一起工作。看到我的答案。 – kelunik

回答

2

你爲什麼要與旁邊的選擇你的元素,如果它有一個唯一的ID?

$(document).ready(function(){ 
    $('div#ordontia').click(function(){ 
     $('div#ordontia2').slideToggle("slow"); 
    }); 
}); 

更一般的,如果你添加更多的div:

$(document).ready(function(){ 
    $('.botaomedicina').click(function(){ 
     $('#'+$(this).attr('id')+'2').slideToggle("slow"); 
    }); 
}); 

與所有其他關:

$(document).ready(function(){ 
    $('.botaomedicina').click(function(){ 
     $('.botaomedicinadescription').slideUp("slow"); 
     $('#'+$(this).attr('id')+'2').slideToggle("slow"); 
    }); 
}); 
+0

謝謝,第二個幾乎就是我想要的!我只需要確保div在新文件打開之前關閉。也許這樣? $('。descricaomedicina')。slideToggle(0);函數的第一行之前()? – biip

+0

是的,該函數被稱爲'.slideUp',查看更新的答案。 – kelunik

2

不要使用$.next,只選擇當前元素的兄弟姐妹:

獲取緊隨其後的每個元素的兄弟在一套 匹配的元素。如果提供了選擇器,則只有在匹配該選擇器時纔會檢索下一個 兄弟。
jQuery documentation: .next()

正常使用的一個:

$('div#ordontia2').slideToggle("slow"); 
1
$(document).ready(function(){ 
    $('div#ordontia').click(function(){ 
     $('div#ordontia2').slideToggle("slow"); 
    }); 
}); 

刪除this;)

2

固定它。

http://jsfiddle.net/65AK2/2/ 

首先,它看起來像你的切換div是畸形的。我沒有看到它的

其次,如果你知道其他分區的ID是什麼,你不需要說:

$(this).next("#item"); 

,這將毫無意義。

1

試試這個

$(document).ready(function(){ 
    $('div#ordontia').click(function(){ 
     $('div#ordontia2').slideToggle("slow"); 
    }); 
}); 

更新小提琴http://jsfiddle.net/65AK2/4/

0

您可以通過ID選擇

http://jsfiddle.net/65AK2/3/

$(document).ready(function(){ 
    $('#ordontia').click(function(){ 
     $('#ordontia2').slideToggle("slow"); 
    }); 
});