jQuery在悬停时为变量分配索引
Posted
技术标签:
【中文标题】jQuery在悬停时为变量分配索引【英文标题】:jQuery assign index to variable on hover 【发布时间】:2011-12-01 21:56:10 【问题描述】:我正在使用this script 在一组 DIV 之间切换一个类。
键盘导航效果很好,但是如果您将鼠标悬停在 DIV 上,然后切换回使用键盘,您会注意到脚本不记得您鼠标悬停的最后一个 DIV。它将继续记住您通过键盘导航到的最后一个 DIV。
这是一个演示问题的 JSFiddle:http://jsfiddle.net/bupGk/
我正在寻找的是正确的公式,它将计算悬停时任何给定 DIV 的索引值,以及列的类。
jQuery
var i = -1;
var all = $('.column');
$('.column').hover(function()
$('.column').removeClass('scroll'),
$(this).addClass('scroll'),
i = $(this).eq() /*problem area*/
);
function traverse(ele)
all.removeClass("scroll");
all.eq(ele).addClass("scroll");
$(document).keydown(function(e)
if (e.which == 37)
e.preventDefault();
traverse( i = !i ? all.length - 1 : --i );
if (e.which == 39)
e.preventDefault();
traverse( i = ++i % all.length );
);
【问题讨论】:
【参考方案1】:试试这个:
i = $(this).index()-1
Index() 不带参数给出相对于其兄弟元素的索引。 小提琴:http://jsfiddle.net/bgg92/
eq() 返回一个 jQuery 对象,而不是整数。
eq() http://api.jquery.com/eq/
索引() http://api.jquery.com/index/
【讨论】:
谢谢!我不得不将我的应用程序的代码更改为i = $(this).index()-2
,但它运行良好。【参考方案2】:
而不是i = $(this).eq()
,使用i = $(this).index()
。
这是一个使用你的小提琴的例子,它将i
记录到控制台:http://jsfiddle.net/bupGk/1/
【讨论】:
以上是关于jQuery在悬停时为变量分配索引的主要内容,如果未能解决你的问题,请参考以下文章
带有 noConflict 和分配 noConflict 变量的 jQuery