問題タブ [event-flow]

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 投票する
1 に答える
335 参照

jquery - DOM イベント フローにはキャプチャとバブリングの両方があると本に書かれているのはなぜですか? では、イベントは 2 回発生しませんか。

The book Professional Javascript by Zakas には、次のように書かれています。

1) IE はイベント バブリングを使用します
2) Netscape はイベント キャプチャを使用します
3) DOM イベント フローは最初にキャプチャしてからバブリングします

では、イベント ハンドラが 2 回呼び出されることはありませんか? この DOM イベント フローとは何ですか? DOM レベル 2 のイベント処理ですか?

私が理解しているように、次のことは本当ですか?

a) IE 6、7、8 はすべてバブリングを使用します
b) FF、Chrome、Safari、Opera はすべてキャプチャを使用しますか?
c)jQueryは「バブリング」することですべてを同じにします

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

jquery - 「リンク」(または div) と親要素または祖先要素の両方でイベントをリッスンする良い例は何ですか?

ほとんどの場合、リンク、div、またはボタンのイベント リスナーを登録し、そこからすべてを処理するコードを目にします。しかし、イベントのキャプチャとバブリングは、子孫レベルでイベントを処理し、次に祖先レベルでイベントを処理するのに適しています。しかし、2 つの異なる場所で聞きたいと思う良い例は何でしょうか?

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

events - ZK: すべての子孫のイベントをリッスンする

私は現在 ZK アプリケーションを開発していますが、SelectEvent特定の 1 つ以下のすべてのコンポーネントから起動されたすべての s をリッスンする方法を見つけることができませんでした (これは最初に存在する唯一のものであり、その中で行われるすべての選択で子孫を取得します)または子孫)。

このコンポーネントの下の階層は ごとSelectEventに変化するので、その都度状況を確認する必要があります。

私が考えることができる唯一のものは

    1. 必要な条件チェックを行う関数を定義し、さらに
    2. この関数を呼び出すすべての子孫 (存在しない) イベントリスナーに追加します
  1. 条件チェックを行うページにイベントリスナーを登録します。必要以上に頻繁に発火しますが、まったく発火しないよりはましです。

どちらも適切ではなく、複数のルート コンポーネントが存在する場合、後者は安全ではありません (これらのそれぞれに独自の子孫のセットがあるため)。

私が見落としている方法はありますか?

PS: これは、この質問の ZK バージョンです。


いくつかのコード。ExpressionTypeSelectorには、Listboxを選択するためのが含まれていますExpressionModel。選択すると、モデルのウィジェットが のウィジェットに置き換わりExpressionTypeSelectorます。

主要:

TermModel( の例ExpressionModel)

表示されます: ユーザーは のツリーを作成できますTermModel。選択が行われるたびに、これが最後の可能な選択であったかどうかを確認する必要があります。

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

apache-flex - 組み込みイベントとカスタム イベントの Flex イベント フロー

カスタム コンポーネントがあり、子アイコンが含まれています。マウス クリック イベント リスナーをコンポーネント (クリック リスナー 1) とアイコン (クリック リスナー 2) の両方に追加すると、イベント ディスパッチ シーケンスはクリック リスナー 2、次にクリック リスナー 1 になります。私はそれを理解することができます。しかし、カスタム イベントをコンポーネント (リスナー 1) に追加し、マウス クリック イベントをアイコン (リスナー 2) に追加すると、アイコンがクリックされると、コンポーネントはカスタム イベントをディスパッチします。私のテストでは、イベント ディスパッチ シーケンスはリスナー 1、次にリスナー 2 です。event-bubbles ルールと一致しません。

私の意見では、カスタムイベントはリスナー2でディスパッチされ、リスナー1をトリガーします。イベント フロー シーケンスがリスナー 2、リスナー 1 ではないのはなぜですか?

コンポーネントで。

コンポーネントを含むアプリケーション内

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

objective-c - UIControl サブクラス - タッチ イベント フローを停止するには?

私はボードゲームアプリ(チェスなど)を書いています。メイン ビューは、ボードを回転させるフルスクリーン ビューの任意の場所で開始されたスワイプ ジェスチャ (UISwipeGestureRecognizer) を認識します。

ここで、ボードの真上に正方形の透明なサブビューを追加しました。これはタッチを検出する UIControl サブクラスです - ボード上でのポーンの動きとして:

UIControl サブクラスで覆われている画面の領域でスワイプ ジェスチャがブロックされることを期待していました。そして、そうではありません。そのため、正方形の boardControl をすばやくタッチ アンド ドラッグ (スワイプ) すると、最初はポーンの動きとして検出されますが、ボードを回転させるスワイプとして再び検出されます。

UIControl サブクラスを作成して、そのフレームで開始されたタッチ イベントのスーパービューへのフローをブロックするにはどうすればよいですか?


次のいずれかの方法で、スーパービューのレベルでタッチをフィルタリングすることで、アプリがスワイプ ジェスチャに反応しないようにすることができます。

または:

しかし、私はその問題を 1 レベル前に解決したいと考えています。boardControl が、ビュー階層の上位にあるフレーム タッチ イベント内で開始されたものを渡さないようにしたいと考えています。

UIControl サブクラスでそのスーパービューを「カバー」し、取得したすべてのタッチを「食べる」ことができるので、そのようなタッチを除外する必要があるかどうかを推測するためにスーパービューがそのフレームにアクセスする必要はありませんか?

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

.net - イベント フロー フィルターが、イベント ソースを入力として使用し、ApplicationInsights を出力として使用して正しくフィルター処理しない。何か案は?

イベント フローを使用して、サービス ファブリック アプリケーションのアプリケーション インサイトにテレメトリ データを送信しています。イベントは正しく作成されているようですが、eventFlow フィルタリングで問題が発生しているようです。イベントを例外または依存関係としてフィルター処理しようとすると、Azure のアプリケーション インサイト ポータル内に表示されません。

ロギング イベントは、eventSource を使用して作成されます。

eventFlowConfig.json からの出力セクションは次のとおりです。

この問題に最も関連する、私が使用しているパッケージのバージョンは次のとおりです。