問題タブ [touchstart]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
29556 参照

jquery - iOS デバイスでクリックをタッチスタートに置き換える方法

目的

クリック時にアンカー タグの親 div を閉じる。以下のコードでは、ユーザーがアンカー タグclose_performance_ttをクリックしたときにdiv performance_ttを非表示にします。

問題

数時間費やした後、iOS デバイスで動作させることができません。BlackBerry 10 デバイスであっても、他のすべてで問題なく動作します。

0 投票する
0 に答える
423 参照

jquery - タッチスワイプでスワイプするときのタッチスタートを防止

ユーザーがサムネイルをスワイプしたときにタッチスタートが発生しないようにしたいのですが、スワイプした瞬間にタッチスタートもアクティブになります。これを防ぐ方法はありますか?これが私のコードです:

0 投票する
3 に答える
586 参照

javascript - どのJavascriptイベントが発生したかを知る方法

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

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

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

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

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

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

0 投票する
1 に答える
335 参照

jquery - jQuery シングル ページ サイトのドロップ メニュー リンクが iOS iPad/iPhone で失敗する

jquery (jquery mobile ではない) を実行している 1 ページのスクロール サイトがあります。ドロップ メニュー (順序なしリスト) の表示をトリガーするアンカー リンクがあります。ドロップ メニュー内のリスト項目をクリックすると、関連するスライドがアニメーション表示され、ドロップ メニューが非表示になります。

iOS ブラウザ以外のすべてでうまく機能します。私の問題は、リンクが最初にクリックされたときにしか機能しないことです。

私は、iOS でのマウス クリックとホバー イベントの区別についてよく読みました。解決策はどれもうまくいきません。

私はすべてを試しました:

  • #btn_menu 要素をアンカーと div にする
  • リンク、li タグ、ラップされた div タグに cursor:pointer スタイルを追加する
  • すべてのリスト メニュー項目でアンカー タグをラップする
  • タッチ イベントのトリガーに加えて、最初のクリック後に touchend、メニュー クリック イベントなどを起動しようとする
  • Hammer.js などのタッチ ライブラリ

シンプルなコード。

HTML メニュー:

**私が知っていることは起こっている**

最初の #btn_menu とそれに続く .nav_menu のクリックのみが完全に機能します。しかし、画面を少しタッチ/移動すると、次の #btn_menu クリックが機能します。#btn_menu のイベント リスナーがクリアされたように見えますか?

ホバー イベントは、最初のクリック後も機能し続けているようで、その後のすべてのクリックに干渉しています。「メニュー」という単語をクリックすると下線が引かれるので、これを知っています - #btn_menu のホバーをリッスンしているイベントをクリアできないようです

私の知恵の終わりに。この種のドロップ メニューの単一ページ サイトで、iOS でクリック イベントを動作させる方法について提案がある人はいますか?

コード内で slicknav.js などのソリューションをテストしましたが、これらも同じ問題を示しています。

0 投票する
3 に答える
5996 参照

jquery - モバイルでページをスクロールするときにタッチスタートを防止する

ユーザーがモバイル デバイスのページを下にスクロールしたときに touchstart イベントを無効にしたいと考えています。ページにはさまざまな要素があり、クリックするとクラスが切り替わりますが、ユーザーが下にスワイプしてページを下にスクロールすると、タッチスタートイベントが無効になります。

Jクエリ

誰でも方法を知っていますか?ありがとう!

0 投票する
1 に答える
2994 参照

javascript - スクロールを妨げずに touchstart の preventDefault

これと同様の質問がありますが、解決策には別のライブラリを使用するか、代わりにクリックイベントを使用するかのいずれかです - ライブラリなしで達成できるかどうか疑問に思いました.

画像で touchstart イベントを使用して 1.5 秒のタップを検出すると、その画像がリロードされます。ただし、ほとんどのモバイル デバイスでは、画像を一定時間長押しすると、画像を保存/コピーするかどうかを確認するポップアップが表示されますが、これは防止したいと考えています。

preventDefault()トリックを行いますが、画像のスクロールも無視します(予想どおり)。

画像のスクロールも許可する最良の方法は何でしょうか?

コード例:

iOS には正常に動作する CSS プロパティ ( -webkit-touch-callout:none) がありますが、iOS 以外のデバイスでは動作しません。

どんな助けでも大歓迎です。