限制 jQuery slideToggle 处理多个元素

Restricting jQuery slideToggle from working on more than one element

我有一组重复的图片,每张图片下面都有一个说明。单击图像时,我正在使用 slideToggle 显示和隐藏每个图像的标题。

 $('.imageholder').click(function() {
 $(this).next().slideToggle("fast");

 });

显示我的方法的有效 fiddle 是 here

这可以正常工作,但我想防止同时显示多个字幕。当用户单击图像时,任何打开的字幕都应关闭。在我的示例中,您将看到可以打开所有字幕。这就是我要防止的。

希望在正确的方向上轻推。谢谢

您应该尝试隐藏其他可见元素:

$('.imageholder').click(function() {
  $('.description:visible').not($(this).next()).slideToggle("fast");
  $(this).next().slideToggle("fast");
});

slideUp() 所有不是当前描述的描述,然后 slideToggle() 当前描述。

$('.imageholder').click(function() {
  var $desc = $(this).next();
  $('.description').not($desc).slideUp('fast');
  $(this).next().slideToggle("fast");
});

就这么干吗?

$('.imageholder').click(function() {
     $('.description').slideUp();
     $(this).next().slideToggle("fast");
});