2011-10-27 10 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の部分は、 同様の問題が発生しましたか?jQuery 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

は動作しないようです。 – 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'属性を追加しましたか? –

関連する問題