免责声明:我是jQuery的新手。
我尝试了什么:
在Magnum WP主题中,有多个js文件排队。我已经将jQuery代码添加到custom.js
,它确实是开箱即用的正确链接(因为功能显然已经用完了)。我还尝试在头部添加<script>
标签,最后直接粘贴代码(在调用jQuery库之后)。主题使用jQuery,因此lib绝对是链接的。我已经尝试了很多不同的代码片段,我无法让它们中的任何一个工作。例如。我一直在努力让这一个运行
jQuery(window).scroll(function() {
var position = $(this).scrollTop();
jQuery('.section').each(function() {
var target = $(this).offset().top;
var id = $(this).attr('id');
if (position >= target) {
jQuery('.menu-wrap > ul > li > a').removeClass('yes');
jQuery('.menu-wrap > ul > li > a[href=#' + id + ']').addClass('yes');
}
});
});
我也试过jQuery
替换为$
(不确定哪个语义正确)。
我可以确认链接的html元素存在。我的样式表中使用规则.yes
引用了background: red;
,我可以确认它是有效的。
我完全不知道为什么这个代码或任何其他jquery函数不会加载。
Chrome控制台中没有相关错误。
答案 0 :(得分:0)
现在,我可以说,你在兼容模式下使用jQuery。试试这段代码:
jQuery(window).scroll(function() {
var position = jQuery(this).scrollTop();
jQuery('.section').each(function() {
var target = jQuery(this).offset().top;
var id = jQuery(this).attr('id');
if (position >= target) {
jQuery('.menu-wrap > ul > li > a').removeClass('yes');
jQuery('.menu-wrap > ul > li > a[href*="#' + id + '"]').addClass('yes');
}
});
});
或者这个
jQuery(function($){
$(window).scroll(function() {
var position = $(this).scrollTop();
$('.section').each(function() {
var target = $(this).offset().top;
var id = $(this).attr('id');
if (position >= target) {
$('.menu-wrap > ul > li > a').removeClass('yes');
$('.menu-wrap > ul > li > a[href*="#' + id + '"]').addClass('yes');
}
});
});
})
您正在使用css选择器,因此a[href=#id]
不正确。您应该将字符串传递给值,并且链接不是完全匹配选择器中的id,而只是部分匹配。所以我将其更改为a[href*="#id"]