我正在尝试使用javascript和jquery构建一个脚本,当鼠标悬停在另一个元素上时,该脚本会有一个元素作出反应。到目前为止,我已经有了很大的帮助,但我想我在这里搞砸了什么。我让它在一个方向上工作但不在另一个方向上工作。在它工作的方向上,锚元素中有文本。在它不工作的方向上,锚内部有一个图像。这可能会搞砸我,不确定。我在这里发布了一个简化版本:http://jsfiddle.net/vZAYY/14/ 似乎javascript没有找到li元素(它返回-1)
另一件奇怪的事情是,在完整的网站(我在本地运行)都不起作用,虽然构建js小提琴我直接复制代码。它位于一个带有drupal的站点上,脚本从两个元素上的悬停返回-1。
有什么建议吗?
答案 0 :(得分:0)
您的代码有点乱,但如果某些内容返回-1
则必须是index()
函数。不能肯定地说,但你的问题可能在这里:
var x = $(this).parent().parent().parent("li").index();
$(".mainNavigation ul li:eq(" + x + ")").addClass("active");
我不确定parent().parent().parent('li').index()
是最好的主意。我的意思是,index()
采用您可以指定的上下文。事先缓存选择器是个好主意
在第二行而不是:eq
我会使用eq()
,这将更快,更可预测。