8

このjsFiddleを見てください

SVG(Raphael 2.0)と組み合わせてjQueryを使用すると、/が正しく起動していないように見えますmouseentermouseleave箱から出してすぐにSVGjQueryはSVGと100%互換性がないことを知っていますが、私が見る限り、それはIE9にのみ影響するようです。

奇妙なことに、マウスをsvg要素のオン/オフにすばやく移動して(そうするときにHTMLペインからすぐに外れるようにします)、その要素に戻ると、イベントが発生します(毎回ではありません)。それが一般的な問題ではないことを確認するために、私は毎回正常に機能onするイベントをフックしました。click

これがバグなのか、それとも既知の問題なのか誰かが知っているかどうか疑問に思っていますか?

4

2 に答える 2

2

これは 1.7.2 のバグです。チケットを参照してください。

jQuery (エッジ) を使用すると問題が解決するため、次の予定されているリリース (1.8) で修正する必要があります。

于 2012-07-13T07:45:49.613 に答える
0

jQuery 1.8.2 と Android では phonegap 経由で jq-mobile が使用されていないことに注意することが重要だと思います。タッチとマウスのイベントがランダムに選択され、同期されていないことがわかります...つまり、微妙な違いがmouseEnterをトリガーし、touchStartをトリガーする別のタッチと比較してクリックします(現在、入力が送信されていない場合でも、mouseEnterが発生する場合があります)、次に2つのtouchEnds。touchEvent で mouseEnter をトリガーした場合、2 番目のタッチ パターン (開始、終了、終了) が mouseLeave を送信します (微妙なタップの違いによってランダムにクリック コンボがトリガーされないと仮定します)。

私の期待は、1 つ (タッチイベント) がマルチタッチのニーズにより多く使用されることを除いて、両方の状況で一緒にトリガーする必要があること、またはタッチインターフェイスを介してシミュレートされたクリックイベントの後に mouseLeave イベントが発生しないことを認識することでした (どういうわけか?.. .)。私の他の期待は、マウスイベントのリスナーを処理または登録していないが、タッチイベントの場合はそうする場合であり、その逆の場合、リッスンまたはインターセプトされたものに応じて、異なるイベントが送信されるか送信されないかです (false を返す? またはpreventDefault などを介してバブリングを停止します)。

とにかく、現在、両方のタイプのイベントをランダムで接続されていない予測不可能な方法で処理する必要があるようです。これは、マウスの世界でタッチ対応デバイスの「オーバー」イベントとして最もよく説明されているものを破棄することを意味しました。

基本的に、タッチはオーバー/エンターイベントを送信すべきではないと考えていますが、クリックもタッチに相当する必要があります。

いずれにせよ、両方を送信して、私に整理させていただくのが最も理にかなっています。私が疑う混乱は、送信しているイベントの半分しか聞いていないことです (タッチがありません)。...とても幸運!これらの考えが、高レベルまたは低レベルの開発チームの誰かが混乱に対処するのに役立ちますように。(それはブラウザレベルのせいですか?私はそう思います。)

于 2012-10-11T04:03:39.760 に答える