2011-10-27 13 views
1
$("#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鍵結束! 你有沒有遇到類似的問題?jQuery鼠標工程與鼠標很好,但不是與選項卡鍵

我試過.bind來解決這兩個事件,但仍然不工作!

如果在mouseenter上觸發事件,但沒有任何焦點!

+11

你驚訝的是** **鼠標輸入,當你在**鍵盤上做的事情不會觸發* *? – Jon

+0

爲什麼你使用'$'和'jQuery'的組合? – Neal

+0

改用'focus'和'blur'或'focusout'。我認爲這些能夠處理鍵盤和鼠標事件。 –

回答

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); 
}); 
+0

是的,我已經試過,還有點還沒有! – user472285

+0

doens't似乎工作 – Crystal

+0

@xgrioux這個答案是6歲,它使用的'bind()'事件已被棄用,因爲它的工作,你可能需要jQuery遷移。或者使用更新的'off()'和'on()'事件綁定函數。更多在這裏:http://api.jquery.com/on/ – jammypeach

2

鼠標事件通常不會針對按鍵進行觸發。 .focus().blur()是你所追求的。

編輯:大多數非表單元素不能接受默認的焦點,你需要一個tabindex屬性添加到他們:

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

並且爲了避免重複代碼,使用'.bind('mouseenter focus',function(){。 ..})'等等。 – GregL

+0

不起作用 – user472285

+0

@user:您是否已將'tabindex'屬性添加到您的元素中? –

相關問題