我担心我可能已经在某个地方问过类似的问题,但我找不到解决办法。
这大致是我的环境+目的: 我有一个非常简单的HTML JQuery设置,当页面超过5个h3时,它的意图是折叠后面的内容。每个h3后跟一个或多个段落。如果页面确实有超过5个h3,则属于h3的每个内容都应自动折叠(隐藏),当单击并隐藏相应的h3时再次单击时显示。
这是我的 jquery 代码:
$(document).ready(function() {
if ($('h3').length > 4) {
var headlines = $('h3').slice(3);
var start = $('h3').slice(3,4);
var content = start.nextAll().not('h6');
headlines.addClass('expandable-headline');
content.hide();
headlines.click(function() {
var successors = $(this).nextUntil('h3');
successors.toggle();
$(this).toggleClass('expandable-headline');
});
}
});
这是我的 html :
< h3>ABC</h3 >
< p>some nice content</p >
< h3>ABC</h3>
< p>some nice content</p>
< p>some even nicer content</p>
最后但同样重要的是,这是我的问题:
当在简单的测试文件中本地运行时,上面的所有代码都很完美,但是当我在我的生产系统(Drupal站点)中尝试它时,它会在
处抛出错误 var successors = $(this).nextUntil('h3');
说明 $(this).nextUntil不是函数。
任何想法,这是关于什么的?
我感谢任何帮助
Best Greeets,
晴天
答案 0 :(得分:1)
这是版本问题吗?
nextUntil是在v1.4中添加的,所以如果你的Drupal系统引用了旧版本的jQuery,那就是问题所在。
答案 1 :(得分:1)
您的jQuery版本是否相同?
要对此进行测试,请将此行代码插入到每个页面的脚本中:
alert(jQuery.fn.jquery);
它将alert()
您的版本号。
如果您对nextUntil
的搜索the jQuery changelog,您会看到它已在版本 1.4 中添加,因此您的Drupal jQuery版本可能已经过时了。
如果你打算升级jQuery(我不使用Drupal.Wordpress对我来说很好),这个问题似乎很相关:Drupal 6: best way to upgrade jQuery?。
答案 2 :(得分:1)
确保您没有在页面上包含多个jquery文件。一些drupal模块将它们自己的jquery库插入到它们使用的页面中,如果它们不是正确的版本,您引用的jquery对象可能会被覆盖,并且是页面无效的原因。