Jquery效果问题:如何检测滚动是否触发鼠标悬停?

时间:2010-06-16 12:09:23

标签: javascript jquery navigation mouseover keypress

我还有另外一个问题,因为回复快到这里我又回来了!!

我想使用“键导航”,为此,我使用带有向下/向上键的按键事件)

当我的鼠标悬停在一个div(div正在争夺一张大桌子)并且我拉下键时:

我滚动到下一个td +更改css样式+删除当前样式

再次,对于每个活动..

所以,因为我的鼠标在主div上,每次我滚动(自动)到一个元素时,会触发鼠标悬停事件..

所以,错过了效果..

这是完美的剧本:

  • 用户使用键盘导航:禁用鼠标悬停(因此仅使用向上/向下键更改样式)
  • 用户不使用键盘:鼠标悬停更改样式

你能帮帮我吗?

代码:

$("#content tr").mouseover(function() {
    $("#content tr.use,#content tr.sel").removeClass("use sel");
    $(this).addClass("sel");
});

键盘导航代码:http://pastebin.com/Hgn5Y1FV

(对不起我的英文..)

由于

1 个答案:

答案 0 :(得分:0)

试试这个。每当你的滚动(从箭头键)开始,让它将标志设置为true,当滚动停止时,将标志设置为false。

var keyboardScroll = false;  // Set to true when keyboard scroll begins
                             //     and false when keyboard scroll ends

然后只有当keyboardScroll为false时才运行mouseover代码;

$("#content tr").mouseover(function() {

    if( !keyboardScroll ) {  // Run code only if keyboard scroll is not true
        $("#content tr.use,#content tr.sel").removeClass("use sel");
        $(this).addClass("sel");
    }

});