jQuery mouseenter适用于鼠标,但不适用于Tab键
$( "#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在鼠标hover时效果很好,但没有使用tab键! 你遇到过类似的问题吗?
我已经尝试过.bind来解雇这两个事件但仍然没有工作!
如果在mouseenter上触发事件但没有任何焦点!
mouseenter
和mouseleave
与键盘事件无关,并且在元素获得键盘focus
时不会触发。
要让你的代码同时触发mouseenter
和focus
,这就更接近了:
$("#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); });
按键操作通常不会触发鼠标事件。 .focus()
和.blur()
是你所追求的。
编辑:默认情况下,大多数非表单元素都不能接受焦点,您需要为它们添加tabindex
属性:
...