私はクリックとマウスオーバーイベントをリンクにバインドするためにon()イベントを使用しようとしています。これは基本的にはデスクトップ上でマウスを動かし、モバイルとタブレットをクリックします。私が現在持っている問題は、両方のイベントが同時にトリガされることです。これをきれいに行うことは可能ですか、画面の幅に条件を追加して、デスクトップ上のホバーだけを適用する必要がありますか?モバイルのイベントをクリックしますか?ここでの基本的なJSのフィドル:http://jsfiddle.net/4wr3da8p/マウスオーバーとクリックイベントの競合
$('div').on('click mouseover', 'a', function(e) {
e.preventDefault();
$(this).toggleClass('active');
});
EDIT: が良い私がやろうとしているかを示すためにjsfiddleを更新しました。隣接する要素の表示を切り替えたいので、CSS疑似クラスが役立つとは思わない。
$('div').on('click mouseover', 'a', function(e) {
e.preventDefault();
$('.content').toggleClass('active');
});
バインドイベント...デバイスを確認します:http://stackoverflow.com/questions/3514784/what-is-the-best-モバイルデバイスの検出方法 –
マウスオーバーするとクリックは発火しませんが、クリックするとマウスオーバーが発生します。 –
質問にあなたのコードを含めるべきであり、あなたが達成しようとしていることも完全に明確ではありません。ホバー/タップはマルチデバイスUIの一般的な設計上の問題ですが、どのようにアプローチするかはUIに依存します。通常は、意味論的で可能な限り高いレベルのイベントに固執したいと考えます。 – pvg