在将鼠标悬停在导航菜单栏上时,在wordpress网站上工作并添加滑动标记。
网站 - http://avuedesigns.com/iaq
在chrome Developer工具中,它显示以下错误:
Uncaught TypeError: Cannot read property 'left' of undefined script.js:242
(anonymous function) script.js:242
v.event.special.(anonymous function).handle jquery.js:2
v.event.dispatch jquery.js:2
o.handle.u
菜单上唯一可用的页面是购物车页面和我的帐户。我假设它可能与图书馆的冲突,因为我几天前有类似的情况。但我不知道解决这个问题的正确方法,并希望找到指导,所以我不会浪费任何人的时间来处理简单的问题。
我知道标记在工作页面上已关闭,没有时间调整它,想让它先工作= P.
感谢您的时间和智慧。
答案 0 :(得分:1)
好像你正在使用错误的类来获取script.js @Line 231中#slidingArrow
的位置值:
activeItem = menuList.find('.current_page_item, .current_page_ancestor, .current_page_parent');
我认为您最适合为.current_page_item
换出.current-menu-item
。 .current_page_item
类似乎没有在所有页面上填充,因此#slidingArrow
div元素无法获取任何定位信息。
在script.js中,这是我对menuSlidingArrow()
所做的更改:
function menuSlidingArrow() {
if(!($j('html').hasClass('oldie'))) {
var mainmenu = $j('.menu-content'),
arrow = $j('#slidingArrow'),
menuList = mainmenu.find('ul.menu'),
activeItem = menuList.find('.current-menu-item, .current_page_ancestor, .current_page_parent'); //remove .current_page_item
$j(window).load(function() {
arrow.css({ 'left':(activeItem.position().left + ((activeItem.outerWidth() - 48)/2) ) -6});
arrow.fadeIn('slow');
});
menuList.children().hover(function(){
arrow.animate({ 'left':($j(this).position().left + (($j(this).outerWidth() - 48)/2) ) -6},
{ queue: false, easing: 'easeOutQuad', duration: 250 });
},function(){
arrow.animate({ 'left':(activeItem.position().left + ((activeItem.outerWidth() - 48)/2) ) -6},
{ queue: false, easing: 'easeOutQuad', duration: 250 });
});
}
}
我还需要以下CSS来使其工作:
#menu-main-menu {
margin-left:68px;
}
#menu-item-8197 a { /* hide home navigation item */
color:#fff;
}
#slidingArrow {
margin-left:77px;
}
最后,请务必将“主页”页面添加到顶部导航栏中。您将要将其添加为导航中的第一项。
总而言之,我改变/添加了:
.current_page_item
已更改为.current-menu-item
#slidingArrow { margin-left: 77px; }
,menu-item-8197 a { color:#fff; }
,#menu-main-menu { margin-left:68px; }
#slidingArrow
为中心
让我知道这对您有何影响,如果您遇到任何错误,我很乐意为您纠正我的答案。
答案 1 :(得分:0)
这个函数什么都没有返回,所以activeItem被定义为一个空数组,这就是你的代码不起作用的原因,请在其他页面中检查你发送给menuList.find()
函数的参数,看看它们是否是'与众不同。
script.js第231行:
activeItem = menuList.find('.current_page_item, .current_page_ancestor, .current_page_parent');