0

最近発生したイベントが何であったかをJavascriptで知る方法はありますか? 私が尋ねている理由は、Windows 8 を実行していて、タッチ スクリーン付きのラップトップである新しい Ultrabook の 1 つで適切に動作しないサイトで作業しているためです。標準のマウス機能 (タッチパッドまたは実際のマウス) を使用する場合は正常に動作しますが、タッチ スクリーンを使用する場合は動作しません。

これは IE でのみ発生します。Chrome には独自の問題があり (コードで修正済み)、Firefox では問題は発生していません。

基本的には「hoverIntent」ブロックが入っている機能ですが、IEでタッチスクリーンを使うと「over」と「out」の両方の機能が登録されてしまうのが難点です。

ただし、最後に発生したことが、ユーザーが画面に触れたのか、マウスでクリックしたのかを判断する方法があれば、解決策があります。しかし、それを行う方法があるかどうかはわかりませんでした。

私が見つけた唯一のことは、要素に「.data('events')」を追加することでしたが、実際のマウス クリックか画面上のタップかに関係なく、返されるのは「クリック」です。

これを行う方法はありますか?

4

3 に答える 3

0

関数の引数にイベントを追加してから、event.typeどのイベントがトリガーされたかを確認するために使用できます。元:

var x = function(e) { 
    alert(e.type);
}
于 2013-11-25T23:23:44.567 に答える
0

ブラウザーには、以前に発生したイベントを記録する標準的な方法がありません。現在のイベントの前に発生したイベントを知りたい場合は、それらのイベントのイベント ハンドラーをインストールして自分で記録する必要があります。これにより、後でそれらを振り返ることができます。

伝播するイベントの場合、オブジェクトにいくつかのイベント ハンドラーをインストールdocumentし、最後の N イベントのイベントとターゲットの両方を記録できます。

現在のイベントが何であるかを把握しようとしているだけの場合は、 のようにイベント ハンドラーに渡されるオブジェクトのtypeプロパティを調べることができます。evente.type

于 2013-11-25T23:23:08.433 に答える
0

そのため、IE には、宇宙の他のすべてのブラウザとはまったく異なる一連のタッチ イベントがあることがわかりました。うーん。「touchstart」の代わりに、「MSPointerDown」などを使用します。私の解決策は、基本的に、MSIE のタッチ デバイス イベント用の新しいイベント ハンドラを作成することでした。

于 2013-11-26T19:48:50.947 に答える