問題タブ [event-bubbling]

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 に答える
1179 参照

c# - WPFでイベントをバブリングしますか? 簡単な質問

これはおそらく非常に簡単な修正ですが、私はイベントの操作に不慣れなので、質問するだけです.

ListBoxItems を含む ListBox があります。これらの ListBoxItems はデータ ソースにバインドされるため、変更されます。これらの ListBoxItem のいずれかで MouseDown アクションが実行されたときに、MouseDown イベントを発生させる必要があります (ドラッグ アンド ドロップを行っているため)。値が変化しているため、次のように XAML でイベントを結び付けることは期待できません。

これは、静的な値があれば簡単ですが、ListBox の値が変化するため、次の XAML を記述したいと思います。

次に、ListBoxItem が選択されると、この MouseDownEventName までイベントがバブルされ、その時点で ListBox1.SelectedItem を取得できます。問題は、今これを試しているところですが、うまくいきません。MouseDown を処理する次のコードがあります。これは、アイテムが MouseDown されたことを示すために、現時点ではラベルの内容を書き換えているだけです。

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

javascript - Javascript:stopPropagationを有効にする方法は?

object.stopPropagation()イベントのバブリングを停止できますが、どうすれば再度有効にできますか?

jsには次のような定義済みの関数がありobject.startPropagationますか?

編集:

問題は、JSが「オブジェクト」をクリックした場合、イベントバブリングを停止したくない場合でも常に停止することを覚えているため、停止したいということです。

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

javascript - GWT:同じdivの2つのDOMイベント、優先度、および最初のイベントが呼び出されたときに2番目のイベントを非アクティブ化する方法は?

Dom mouseDown ハンドラーが 2 つあるウィジェットがあります。

まず、私は GWT でコーディングしていますが、問題はおそらく Javascript に関連していると思います。

このハンドラー登録の 1 つは、ウィジェットのサイズ変更を可能にする Resizable という名前のクラスで定義されています。2 番目のハンドラー登録は、ウィジェットをドラッグ可能にする Draggable という名前のクラスで定義されます。

したがって、これら 2 つのクラスの各コンストラクター (引数にウィジェットを指定) には、次のものがあります。

Resizable ハンドラーが最初に呼び出され、Draggable ハンドラーの後にのみ呼び出されるように、dom イベントに優先順位を付けたいと考えています。どうすれば達成できますか?

また、サイズ変更可能なハンドラーが呼び出された場合は、イベントを停止したいと考えています。機能を試してみましたevent.stopPropagation()が、イベントは親に対してのみ停止でき、同じウィジェットの同様のイベントに対しては停止できないようです。

ウィジェットのサイズが変更可能な場合にドラッグ可能なハンドラーが呼び出されないように、このイベントを停止するにはどうすればよいですか?

私のウィジェットはサイズ変更可能であるがドラッグ可能ではない、ドラッグ可能でサイズ変更可能ではない、またはその両方であるため、これら2つのクラスは完全に独立していると正確に言えます。したがって、可能であれば、これら 2 つのクラス間のコードの交差を避けたいと考えています。

ありがとう

0 投票する
2 に答える
1126 参照

objective-c - NSNotification の概念 - どのコードがどこに行くのか?

私の一部は、NSNotification の概念を理解していると思います。これは、文字列ベースの通知を使用する集中ブロードキャスト システムです。一方に投稿し、1つまたは複数の他の側面を観察し、それに応じて行動します。ただし、コードを書かなければならない私の別の部分は、通知が必要になるたびに混乱します。どのコードがどのヘッダー/実装に入り、どのファイルが実際に監視を行い、どうすれば混乱しないようにできますか? それを正す時が来ました。これらの仮定を検証するのを手伝ってくれませんか? 4番まではかなり自信ありますが、5番は混乱大当たり。


  1. NSNotification は、[NSNotification defaultCenter] の助けを借りて作成されます。NSNotification の割り当て/初期化は行われません。正しい?
  2. postNofification feat を実行するオブジェクトは、常にself投稿コードに渡されます: [[NSNotificationCenter defaultCenter] postNotificationName:@"note name" object:self]. 正しい?
  3. イベントのバブリングは他の言語にも存在しますが、NSNotification を使用する Objective-C には存在しません。通知を渡すのではなく、通知名をグローバル ブロードキャストに適したものにします。正しい?
  4. オブジェクト A によって投稿された通知を引き続き渡したい場合は、B でそれを観察し、それを処理して、オブジェクト C が観察するための新しいより具体的な通知を投稿します。例えば。@"MenuItemTapped"A から B@"NavigateTo"へ、B から C へ。
  5. 通知の名前は NSString です。投稿者と観察者の両方がタイプミスを避けたいので、NSString 定数を[extern const|define|class method|none of the above]に格納します。1つ選ぶのを手伝ってくれませんか?
    • 1 つの試みは、すべての宣言NotificationNames.hを含むファイルのようなものを作成することでした。extern NSString *const NOTE_NAMEしかし、それは通知の移植性を損ないます。
    • もう 1 つの試みは、NSNotification をサブクラス化することでした (作成を高速に保つために XCode テンプレートを使用) が、この概念は AS3 の Event クラスのサブクラス化から取られているため、非常に非客観的であると思われました。また、NSNotification で [super init] を呼び出すことができないという奇妙な点もあるため、事態は手に負えなくなり始めました。
    • これに関する私の問題は、面倒な#importステートメントから生じます。タイプミスを最小限に抑えながら、定数/定義の移植性を維持するにはどうすればよいですか?
0 投票する
2 に答える
2980 参照

javascript - Google ページの Internet Explorer でイベントのバブルの停止が機能しないようです

私はブラウザ拡張機能で作業しています。Google 検索ページのリンクの横にいくつかのアイコンを配置しています。これらのアイコンはいくつかのアクションをトリガーし、ユーザーがクリックした後にバブル イベントを停止する必要があります。履歴書では、親 div タグはこれらのアイコンのクリックについて認識してはなりません。

次のコードは、すべてのブラウザーでバブル停止イベントを許可します。

Firefox では問題なく動作しますが、このコンテキストでは IE (少なくともバージョン 8) では動作しません。それについて何か考えはありますか?

0 投票する
2 に答える
476 参照

jquery - jqueryでイベントバブリングを処理する

私はこのような単純なHTMLテーブルを持っています

行クリックとハイファーリンククリックの両方を処理したかったのです。ヘファーリンクはすでにcallAction()関数に接続されているため、jqueryを使用してクリックイベントを行に追加しました

問題は、ハイパーリンクをクリックするたびに、行クリックイベントも発生することです。どうすればこれを防ぐことができますか。

0 投票する
4 に答える
3529 参照

jquery - 重なっている div のマウス イベントを無視する

ページには 4 つの div があります。

  1. アイテムA
  2. アイテムB
  3. アイテムC
  4. 詳細(非表示)

望ましい効果は、項目ボックスの上にカーソルを置くと詳細ボックスが表示され、マウスアウトすると非表示になることです。詳細ボックスは、表示時にアイテムボックスの右側の約 20% に重なって表示されます。

ただし、現在の誤った効果は、アイテム ボックスの右端にカーソルを合わせると、[詳細] ボックスの表示と非表示の永遠のループに入るということです。おそらくこれは、アイテム ボックスのマウスアウト イベント (詳細が表示されるとき) をトリガーし、詳細ボックスが非表示になるとすぐにマウスオーバー イベントを再度トリガーするためです。これを回避する方法を知りたいです。

私の現在のコードは次のとおりです。

ご指摘ありがとうございます。これは、視覚化できない人のための jsfiddle リンクです。右側の項目ボックスにカーソルを合わせて、マウスを少し動かすと、ちらつきが発生することがわかります。

http://jsfiddle.net/s6CjP/1

ザビエル、私はすでに詳細ボックスにappendToを試しましたが、私が望む効果は、マウスイベントをアクション可能なdiv(つまり、アイテム)のみを対象にしたいということです。詳細ボックスがdivをカバーしているため、いくつかの調査の後、これが可能かどうかはかなり確信しています(したがって、その下にあるものにイベントを添付することはできません)

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

silverlight - 動作中の Silverlight KeyDown イベント

私の Silverlight 4DataGridコントロールでは、キーを押すとカスタム コマンドを実行する非常に単純な動作をアタッチしたいと考えました。実際には、Enter キーを押すと DataGrid で選択した項目をコミットします。

動作が実際に機能している間(私のコードを参照してください...

...) DataGrid が ENTER キーを押すこと自体を処理しているように見え、次の行に進むという問題があります。明らかに、間違った行がコミットされます。キーを押すと、行の選択が既に変更されているためです。

XAML は次のとおりです。

デフォルトの ENTER イベントを防ぐ方法を教えてください。

0 投票する
2 に答える
2474 参照

wpf - UserControl から MouseButtonEvent を発生させる場合、MainWindow は MouseButtonEventArgs にアクセスできません。

急なWPFの山を登り続け、苦しんでいます。

UserControl を定義しました。MainWindow は、UserControl 内のコントロールからの MouseButtonEventArgs を取得する必要があります (たとえば、マウスの e.GetPosition など)。

UserControl コード ビハインドでは、登録を行い、バブリング イベントを発生させます。

MainWindow で、次のように UserControl を宣言します。

そして、このコードビハインド

UserControl からイベントを受け取りますが、Args は RoutedEventArgs (これは正常です) ですが、マウス e.GetPosition を取得する必要がある MouseButtonEventArgs にアクセスできません。

この場合、どのようなエレガントなソリューションを提案しますか?

0 投票する
2 に答える
6304 参照

javascript - JQuery - すべてのブラウザーでイベントのバブリングを停止する

私はいくつかの大規模にネストされた GUI コントロールを持っています - それらがクリックされたり変更されたりしたとき、またはイベントが DOM ツリーをさらに上に行くのを止めるために必要なものは何でも。すべてのブラウザで動作する必要があります。

この時点で、かなりぎこちない JS コードがいくつかあります。

これは機能しますが、匂いがして気分が悪くなります (個人的には空の catch ブロックが嫌いです)。私が使用できるよりきちんとした x-browser トリックはありますか?