我是JS的新手,因此无法正常工作。
这是我的代码
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');
现在,应该做的是从导航菜单上的一个链接中删除突出显示的内容,并突出显示被单击的内容(我有一个AJAX实现)。
由于某种原因,它什么也没做。我有一种感觉,这是由于“ this”导致了另一种结构化代码的方式,因此我可以确定代码是否错误(我不认为是错误的),或者是由于“ this”导致的?
编辑:
抱歉,我没有提供足够的信息。我使用的是二十四岁的wordpress主题,但是我使用AJAX服务页面。
http://twentyfourteendemo.wordpress.com/
我已经在全球范围内应用了该代码(在同一位置(在移动设备上),我在同一位置有其他代码可以切换导航,效果很好)
我的菜单位于顶部(没有任何下拉菜单,只有链接)。我无法提供链接,因为它当前不在外部。我的代码是否应该努力改变这一点?
正如一些人评论“这是什么”一样,我觉得我完全错过了一些东西。
您不需要循环每个项来逐个执行删除类,这更容易:
jQuery('ul.menu li').removeClass('current-menu-item').removeClass('current_page_item');
或(相同):
jQuery('ul.menu li').removeClass('current-menu-item current_page_item');
但是我不明白这是什么'this':
jQuery(this).parents('li').addClass('current_page_item');
jQuery(this).parents('li').addClass('current-menu-item');
你的意思是 :
jQuery('ul.menu li').addClass('current_page_item current-menu-item');
或者,如果您正在使用事件侦听器(例如单击,如@Daniel Sanchez对评论的感觉),则只需执行以下操作:
jQuery('ul.menu li').click(function(){
// Remove class on each item
jQuery('ul.menu li').removeClass('current-menu-item current_page_item');
// Add class for this one
jQuery(this).addClass('current_page_item current-menu-item');
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句