問題タブ [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.
javascript - 子からの Javascript マウスオーバー バブリング
私は次のhtmlセットアップを持っています:
スタイルが設定されているため、他の 2 つの div のいずれかをホバーせずに div1 をホバーすることはできません。これで、div1 にマウスアウトができました。
問題は、マウスアウトがバブリングしているため、content1 から content2 に移動したときに div1.mouseout がトリガーされることです。
また、イベントのターゲット、currentTarget、または relatedTarget プロパティが div1 になることはありません。これは、直接ホバーされることがない
ためです。些細なことのようですが、動作させることができません...
div1 のマウスアウトは、マウスが div1 を離れたときにのみトリガーされます。
可能性の 1 つは、マウスのエンターとマウスリーブにデータを設定することですが、これは単なるマウスアウトであるため、すぐに使用できると確信しています...
編集:
マウスアウトをマウスリーブに変更すると、コードが機能しました...
jquery - jquery focusin() とバブリングの防止
更新 2:
私はそれで寝てから、いくつかのサンプルコードを作成して、問題をさらに解明しようとしました.
次の例では、firebug の console.log を使用して、どのオブジェクトが focusin イベントをトリガーしているかを示しています。
1) 最初のリンクをクリックします: 黄色の div が表示されます 2) タブ キーを押します: 黄色の div 内のリンクに移動します
それはそれを行いますが、その後 focusin イベントをトリガーし、何らかの理由で、黄色の div を閉じるように指示された赤い div に再びバブルアップするように見えます。
これは、黄色の div に focusin イベントを伝播しないように指示した後でもあります。
次に、内側の div にフォーカスした後にのみ、親 div に focusin イベントをアタッチしようとしました。
そこで何が起こるかというと、内側の div の最初のリンクにタブで移動すると、親の div に focusin イベントが設定されます。これはいい!しかし、その後、innerdiv 内の次のリンクにタブで移動すると、focusin イベントが再度発生し、div が閉じられます。
だから、私はまだ困惑していると思います。フォーカスインの泡立ちを止めることはできないようです。考え?理論?
以下、元記事...
============================
onclick イベントを介して div を表示しています。divの外をクリックしたら非表示にしたい。そのために、ボディに 1 回限りのクリック イベントをバインドします。
div 自体の中で、実際に div 内をクリックしても body のクリックがトリガーされないように、イベントを伝播しないように指示します。
これは意図したとおりにうまく機能します。
divからタブを外すと、divも非表示にしたいと思います。
私の考えでは、そのシナリオでは、ボディに focusin イベントを使用できます。
繰り返しますが、イベントが div 自体から飛び出してほしくないので、これを追加しました:
これは動作しません。myDiv 内の要素内でフォーカスを変更すると、body で focusin イベントがトリガーされます。
これはおそらくjQueryのバグですか?もしそうなら、これを達成するためのより良い方法はありますか?
アップデート:
問題は、DIV がフォーカスを持つことができないため、DIV がフォーカスを失ったかどうかを判断する方法がないように思われることです。私の解決策のロジックは、何か ELSE が div の外側にあるフォーカスを持っているかどうかを確認することでした (したがって、focusin を使用しています) が、div 内の focusin イベントの問題が発生しているように見えます。
今のところ、私の解決策は、ポップアップに CLOSE 要素を追加し、それを明示的にトリガーする必要があると思います。ただし、特にキーボード ナビゲーションには理想的ではありません。
ruby-on-rails - 検証が他のモデルに影響を与えない
OK、私は人、ユーザー、従業員の間に、すべての従業員がユーザーであり、すべてのユーザーが人であるという関係があります。は、そこから派生し、そこから派生するPerson
抽象クラスです。User
Employee
今...私はEmployeesController
クラスを持っていて、create
メソッドは次のようになります:
ご覧のとおり、この:polymorphic => true
句を使用している場合、スーパークラスにアクセスする方法は、のような操作を行うことです@derived_class_variable.super_class_variable.super_super_etc
。Person
クラスにはがあり、それが満たされたvalidates_presence_of :first_name
とき、私のフォームでは、すべてがOKです。ただし、名を省略しても、従業員の救済を妨げることはありません。何が起こるかというと、従業員レコードは保存されますが、個人レコードは保存されません(検証のため)。
検証エラーをフラッシュオブジェクトに表示するにはどうすればよいですか?
c# - イベントバブリングを無効にする c# wpf
次の問題があります。
2 つのラベルを互いに結合したとき:
そして、次のコード:
「2番目」をクリックすると、「Label_MouseUp_1」のみをトリガーしたい。しかし、私のコンソールでは次のようになります:
見せて
見せないで
バブリングイベントをオフにする方法はありますか?
(また、「最初」はクリック可能でなければならないので、そこでイベントを削除しても問題は解決しません)
thnx
jquery - 同じイベントにバインドされたdivとアンカーリンクを含める
リンクを含むナビゲーションバー全体にmouseout()をバインドする方法を理解するのに問題があります。
ユーザーが#navのリンクにカーソルを合わせると、サブメニューが表示されます。すべてが順調です。
私がやりたいのは、ユーザーが#nav全体からホバリングしたときにそのサブメニューをfadeOutすることです。
マウスアウトの私のコード:
#navにあるアンカーリンクにカーソルを合わせると、サブメニューが表示されます。次に、mouseout()が起動し、サブメニューがフェードアウトすると思います。とにかく、#navとその中にアンカーリンクを1つとして機能させる方法はありますか?
マークアップを貼り付けますが、4スペースインデントしても、レンダリングされたhtmlとして表示されます。
サンプルページ:http ://chrisparaiso.com/test/
javascript - Javascriptでのイベントバブリングを停止します
私は次のようなhtml構造を持っています:
onmouseout
イベントがメインのdivからのみトリガーされ、div内の「a」または「ul」または「li」タグからトリガーされないようにします。
私のonmouseout
機能は次のとおりです。
誰かがイベントの泡立ちを止める方法を教えてもらえますか?他のサイトで提供されているソリューション(など)を試しましたstopPropogatio
が、このコンテキストでそれらを実装する方法がわかりません。
どんな助けでもありがたいです。
jquery - アニメーション クエリ バブリング - slideToggle を使用するときに適切に処理する方法は?
次の質問への回答が必要です.slideToggleを使用すると問題が発生します.stop()でアニメーションクエリを処理できません.stop(true,true)で処理できますが、アニメーション。例えば、プラグインなしでスムーズに処理したい: アニメーションが終了するまで待機させたい。
jquery - jQuery stopPropagation バブルダウン
内部にリンクを含む div があります。
をクリックすると<div />
どこかに移動するはずですが、子供をクリックする<a />
と www.lol.com に移動するはずです。以前の質問とjQuery Web サイトから、.stopPropagation が上向きのバブルを防止することを見てきましたが、下向きのバブルを防ぐにはどうすればよいですか (ここで必要なことではありませんか?)。
javascript - DOM 要素を削除した場合、その要素で開始されたイベントはバブルし続けますか?
イベント バブルの開始に使用された DOM 要素、またはイベント バブルを開始した子の DOM 要素を削除した場合、どのような動作が予想されますか?要素が削除された場合、バブルは継続しますか?
たとえば、テーブルがあり、テーブル セルのクリック イベントを検出したいとします。別の JS が AJAX リクエストを実行しました。このリクエストは、リクエストが完了すると、最終的にテーブルを完全に置き換えます。
テーブルをクリックすると、テーブルが AJAX リクエストの正常な完了に置き換えられた直後に何が起こりますか? クリックイベントがバブリングしていないように見える動作が見られるため、質問しますが、複製するのは困難です。
(イベントをすべての TD にアタッチするのではなく) テーブルの親要素でイベントを監視していますが、時々到達しないようです。
編集:この問題に再び遭遇し、最終的にその根本にたどり着きました。イベントバブリングの問題ではありませんでした。詳細については、以下の私の回答を参照してください。
silverlight - Silverlightのマウスイベント用のグローバルアプリケーションフック
Silverlightアプリケーションでマウスイベントをキャッチするためのグローバルイベントハンドラーを登録する方法はありますか?各FrameworkElementのマウスイベントハンドラーをサブスクライブすることを避け、より洗練されたソリューション(バブルイベント)を見つけたいと思います。ありがとう