我使用的是214主题,我使用Ajax加载页面。
我想做的事-菜单栏可以取消导航栏上前一页的焦点,并突出显示当前页。
实际发生了什么-
没什么,只是保持不变。
我的代码:
// highlight the current menu item
jQuery(\'ul.menu li\').each(function() {
jQuery(this).removeClass(\'current-menu-item\');
});
jQuery(thiss).parents(\'li\').addClass(\'current-menu-item\');
我也试过这个
jQuery(\'ul.menu li\').each(function() {
jQuery(this).removeClass(\'current-menu-item\');
jQuery(this).removeClass(\'current_page_item\');
});
jQuery(this).parents(\'li\').addClass(\'current_page_item\');
jQuery(this).parents(\'li\').addClass(\'current-menu-item\');
导航栏应该像在库存WP安装中一样进行设置,因为我使用的是默认主题
<nav id="primary-navigation" class="site-navigation primary-navigation" role="navigation">
CSS文件包含以下内容
.site-navigation li .current_page_item > a,
.site-navigation li .current_page_ancestor > a,
.site-navigation li .current-menu-item > a,
.site-navigation li .current-menu-ancestor > a
因此JS似乎使用了正确的调用。
有没有其他方法可以让这一切顺利进行?我有另一个JS脚本,它可以在按钮可查看(移动)且执行正确时切换导航栏。
编辑:根据这个问题中的建议,我也尝试了这个代码
jQuery(\'ul.menu li\').each(function() {
jQuery(this).removeClass(\'current-menu-item\');
jQuery(this).removeClass(\'current_page_item\');
jQuery(this).removeClass(\'current_page_ancestor\')
jQuery(this).removeClass(\'current_menu_ancestor\')
});
jQuery(this).parents(\'li\').addClass(\'current_page_item\');
jQuery(this).parents(\'li\').addClass(\'current-menu-item\');
SO网友:Tom J Nowell
您正在删除当前菜单项和当前菜单页,但是您的CSS引用了以下内容:
.site-navigation li .current_page_item > a,
.site-navigation li .current_page_ancestor > a,
.site-navigation li .current-menu-item > a,
.site-navigation li .current-menu-ancestor > a
.current_page_ancestor
和
.current-menu-ancestor
不是由javascript处理的,但它们是样式化的,因此这就是问题所在。您需要处理这些问题才能使其正常工作。
但是,如何做到这一点,是一个javascript/jquery问题,而不是WordPress问题
此外:
jQuery(thiss).parents(\'li\').addClass(\'current-menu-item\');
你是说
thiss
或
this
?