1

嘿!

马上切入主题,这是jquery代码:

jQuery(function() {
    jQuery('.entry-content h1').nextUntil('h1').hide().prev().click(function () {
        jQuery(this).nextUntil('h1').slideToggle();

});});

这是html:

<div class="entry-content>
   <h1>Header 1</h1>
   <p>Paragraph 1</p>
   <ul>
      <li>Text</li>
      <li>Some more text</li>
   </ul>
   <h1>Some Images and a div</h1>
   <img src="image.jpg">
   <div class="somediv">
     <!--Some stuff -->
   </div>
   <h2>InBetween header</h2>
   <p>text</p>
   <ul>
      <il>text</li>
   </ul>
</div>

现在这几乎像它应该的那样工作,在切换可见的 h1s 幻灯片下的内容时,再次切换时,它们向上滑动。但问题是当点击 h2 的图像时也会发生这种效果。我试图在网上搜索这个,但还没有得到答案:/我会非常感谢帮助:) 简单的小脚本,用于一个页面,其中包含大量不同类型的内容,这些内容具有“InBetween”h1 的缩短通过隐藏它们下面的内容并在单击时显示该页面。

4

2 回答 2

0

@Ulle,您的代码按预期工作。请参阅以下定义下一个直到函数的摘录

给定一个表示一组 DOM 元素的 jQuery 对象,.nextUntil() 方法允许我们在 DOM 树中搜索这些元素的后继元素,当它到达与该方法的参数匹配的元素时停止。返回的新 jQuery 对象包含所有后续兄弟姐妹,但不包括 .nextUntil() 选择器匹配的兄弟姐妹。如果选择器不匹配或未提供,则将选择所有后续兄弟;在这些情况下,它选择的元素与 .nextAll() 方法在没有提供过滤器选择器时所做的相同。

你可以在这里找到完整的定义

您已将 Click 事件附加到以下所有同级。

于 2011-03-09T22:25:39.813 回答
0

感谢朱利安,他让我更加努力地解决问题;)

这是现在的代码,它现在应该像它应该的那样工作:仅在 h1 元素上应用点击 :) 问题是,我将点击应用到所有元素,谢谢 jul :)

这是工作的 jQuery(为 wp 完成,如果我正确,则开启冲突模式)

jQuery(function() {
    jQuery('.entry-content h1').css('cursor' , 'pointer').click(function () {
    jQuery(this).nextUntil('h1').slideToggle();
    }).nextUntil('h1').hide();
});
于 2011-03-13T14:18:01.507 回答