jQuery结合焦点和悬停

时间:2011-03-11 14:44:40

标签: jquery events focus hover

我正在尝试在list元素上使用焦点事件。它正在悬停,但没有焦点!你有什么想法吗?

$('#main-menu ul.rubriques li')
.hover(function() {
$(this).addClass('active').find('ul').show();                    
})
.focus(function() {
$(this).addClass('active').find('ul').show();                    
});

我尝试修改我的代码:找到解决方案;););)

  $('#main-menu ul.rubriques li a')
.hover(function() { $(this).parent().addClass('active').find('ul').show();                   
})
.focus(function() { $(this).parent().addClass('active').find('ul').show();                   
});
谢谢!大家好!

6 个答案:

答案 0 :(得分:3)

重点关注<input/>元素和<a/>链接......

答案 1 :(得分:2)

只有inputstextareasanchors可以获得焦点。

此外,您在)部分

之后错过了hover()
$('#main-menu ul.rubriques li').hover(function() {
    $(this).addClass('active').find('ul').show();                    
}).focus(function() {
    $(this).addClass('active').find('ul').show();                    
});

更新 - 正如@vittore指出的那样,如果您指定li

tab-index可以获得焦点

答案 2 :(得分:2)

您也可以一次绑定两个事件:

$('#main-menu ul.rubriques li').bind('hover focus', function() {
    $(this).addClass('active').find('ul').show();                    
});

但是像michelgotta所说,除了在某些情况下,重点不太可能对李有用 - http://api.jquery.com/focus/

答案 3 :(得分:0)

您需要更改Geoff所假设的处理程序的方式,您还需要为列表项显式设置tab-index属性,以便允许它们触发焦点事件

答案 4 :(得分:0)

焦点是一个只在输入字段等表单元素上使用的函数,例如,如果我没记错的话。

http://api.jquery.com/focus/

你想做什么?

如果您要使用li元素做某事;

$('#main-menu ul.rubriques li').hover(function() {
  $(this).addClass('active').find('ul').show().css({'border':'1px solid #ff2200','background-color':'#ffcc00'});
});

您可以将颜色更改为您想要的颜色。那是你最好的选择。

答案 5 :(得分:0)

我尝试修改我的代码:找到解决方案;););)

  $('#main-menu ul.rubriques li a')
.hover(function() { $(this).parent().addClass('active').find('ul').show();                   
})
.focus(function() { $(this).parent().addClass('active').find('ul').show();                   
});
谢谢!大家好!