0

我试图让一个 div 进行滑动切换,之前已经做过这个,但是然后单击一个标签,然后打开下一个 div 幻灯片。每次都能正常工作。现在我有一个带有slideheader2 类的按钮,在该按钮上方是一个带有slidecontent2 类的div,我想滑动打开。页面上有多个具有多个按钮的 div,它们具有该类。

现在这有效:

jQuery(document).ready(function() {
jQuery(".slidecontent2").hide();
jQuery(".slideheader2").click(function()
{
$('div').prev(".slidecontent2").slideToggle(250);
 });
});

但它会在页面上打开所有具有该类的 div,而不仅仅是前一个。我从其他地方复制并修改了这段代码,所以我查找了 .prev http://api.jquery.com/prev/并像这样修改了代码,但现在它根本不起作用。有点迷失在这里。

    jQuery(document).ready(function() {
   jQuery(".slidecontent2").hide();
   jQuery(".slideheader2").click(function()
   {
    $('div.slidecontent2').prev().slideToggle(250);
    });
    });

希望可以有人帮帮我。谢谢。

@tymeJV

抱歉,该评论无效,感谢您的回答,但该代码仅在slideheader2 和slidecontent2 之间没有任何内容时才有效。例如,下一段代码将无法工作,因为其间存在 otherdiv 类 div。我需要在按钮和滑动 div 之间有其他 div。

<script>
jQuery(document).ready(function() {
  jQuery(".slidecontent2").hide();
  //toggle the componenet with class msg_body
  jQuery(".slideheader2").click(function()
  {
    $(this).prev(".slidecontent2").slideToggle(250);
  });
});

</script>

// works
<div class="slidecontent2" style="width: 500px; height:500px; border: 2px dotted black; background-color: red;">
<p>Slide1</p>
</div>
<input type="button" class="slideheader2" name="submitpakbon" id="submitpakbon" value="slide1" style="width: 225px; float: left;"/>

//wont work
<div class="slidecontent2" style="width: 500px; height:500px; border: 2px dotted black; background-color: red;">
<p>Slide2</p>
</div>
<div class="otherdiv"></div>
<input type="button" class="slideheader2" name="submitpakbon" id="submitpakbon" value="slide2" style="width: 225px; float: left;"/>
4

2 回答 2

1

使用this

jQuery(".slideheader2").click(function()
{
    jQuery(this).prev(".slidecontent2").slideToggle(250);
});
于 2013-06-24T13:39:06.917 回答
0

找到了另一个解决方案。我用php给按钮的名称值一个唯一的数字,也给slidediv的id这个数字,然后使用这个代码:

jQuery(document).ready(function() {

  jQuery(".slidecontent").hide();
  //toggle the componenet with class msg_body
  jQuery(".slideheader").click(function()
  {
  var $shipid = $(this).attr("name");
    $(".slideid"+$shipid).slideToggle(250);
  });
});
于 2013-06-25T07:07:38.863 回答