我做了一个jquery切换效果。当我单击一个div时,它会切换,当我单击另一个div时,它也会切换但两个都打开。所以我的问题是,如果我打开其中一个,那么第二个div将自动关闭。 My demo link is here
$(document).ready(function() {
$('.top').each(function(index) {
$(this).on("click", function(){
$('.read:eq(' + index + ')').slideToggle("fast");
});
});
});
$('.box').click(function (e) {
$( '#' + $(this).data('toggleTarget') ).slideToggle(300);
});
答案 0 :(得分:0)
您需要slideUp()
个其他div。你也不需要迭代它们来设置click事件。使用:
$('.top').click(function(index){
$('.read:not(:eq('+$('.top').index(this)+'))').slideUp();
$('.read:eq(' + $('.top').index(this) + ')').slideToggle("fast");
});
});
<强> Working Demo 强>
答案 1 :(得分:0)
不要尝试将事件绑定在循环结构中。
尝试,
$(document).ready(function () {
$('.top').on('click', function () {
$('.read').not($('.read:eq(' + $('.top').index(this) + ')').slideToggle(300)).slideUp(300);
});
});