我有以下代码,它以我的导航为目标(根据窗口位置添加特定的类。使用Wordpress。
JS
jQuery(document).ready(function($){
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 250) {
$("#s-nav").addClass('s-nav-w');
$(".main-nav li a").addClass('text-w');
} else{
$("#s-nav").removeClass('s-nav-w');
$(".main-nav li a").removeClass('text-w');
}
});
});
我想在我的所有网页上使用相同的导航。但是,我想要
$("#s-nav").addClass('s-nav-w');
$(".main-nav li a").addClass('text-w');
继续添加到所有内部页面(除主页之外的所有页面)我希望我可以修改代码而不是创建一个单独的header.php。
答案 0 :(得分:2)
执行此操作的典型方法是检测仅在主页上的某个对象,并使用if
根据主页上仅存在的内容来有条件地执行代码。您没有向我们展示您的实际HTML,因此我将演示这个概念:
假设你有这个div只出现在你的主页上:
<div id="homepage">...</div>
然后,您可以在jQuery中使用它:
// execute some jQuery on all pages except the home page
if (!$("#homepage").length) {
$("#s-nav").addClass('s-nav-w');
$(".main-nav li a").addClass('text-w');
}
当然,您还可以检测不是主页的所有页面并反转逻辑。两者都可以正常工作。
如果您需要有关如何进行主页检测的帮助,那么我们必须更多地了解您的主页HTML以及它与其他网页的不同之处。
由于主页的内容与其他页面相比总是唯一的,因此该页面中几乎总有一些可以识别的内容。或者,如果您将主页的内容与其他页面分开控制,则只需添加一个空div作为标识主页的标记。
您还可以使用页面路径:
// execute some jQuery on all pages except the top level page
// if your home page is some other path than "/", then substitute the appropriate path
if (window.location.pathname !== "/") {
$("#s-nav").addClass('s-nav-w');
$(".main-nav li a").addClass('text-w');
}