jQuery mouseenter适用于鼠标,但不适用于Tab键

时间:2011-10-27 13:43:09

标签: jquery

$( "#list li:eq(0)" ).bind('mouseenter focus', function(event) {

jQuery("#logo img").css('top', '-132px');
console.log( event.type, " :: ", this.id );
  }).bind('blur mouseleave', function(event) {

jQuery("#logo img").css('top', '-41px');
console.log( event.type, " :: ", this.id );
  });  

这条jQuery的鼠标效果非常好,但没有使用tab键! 你遇到过类似的问题吗?

我已经尝试过.bind来解雇这两个事件但仍无法正常工作!

如果在mouseenter上触发事件但没有任何焦点!

2 个答案:

答案 0 :(得分:3)

mouseentermouseleave与键盘事件无关,并且在元素获得键盘focus时不会触发。

要让您的代码同时触发mouseenterfocus,这就更接近了:

$("#MesActivites li:eq(0)").bind("mouseenter focus", function (event) {
    jQuery("#MesActivites ul:eq(1)").css('top', '45px').css('left', '-1px');
    jQuery("#rfr-header-logo").css('display', 'none');
    console.log(event.type, " :: ", this.id);
}).bind("mouseleave blur", function (event) {
    jQuery("#MesActivites ul:eq(1)").css('top', '-1000px').css('left', '-1px');
    jQuery("#rfr-header-logo").css('display', 'block');
    console.log(event.type, " :: ", this.id);
});

答案 1 :(得分:2)

鼠标事件通常不会触发按键。 .focus().blur()就是您追求的目标。

编辑:默认情况下,大多数非表单元素都无法接受焦点,您需要为其添加tabindex属性:

<li tabindex="0" ... > ... </li>