問題タブ [event-propagation]
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 - 内部要素のスクロール位置が上/下に達したときに親要素のスクロールを防止しますか?
私は小さな「フローティング ツール ボックス」を持っていposition:fixed; overflow:auto
ます。うまく動作します。
ただし、そのボックス内を (マウス ホイールで) スクロールし、下部または上部に到達すると、親要素が「スクロール リクエスト」を「引き継ぐ」: ツール ボックスの背後にあるドキュメントがスクロールします。
- これは迷惑であり、ユーザーが「求めた」ものではありません。
私はjQueryを使用しており、event.stoppropagation()でこの動作を停止できると考えました:
$("#toolBox").scroll( function(event){ event.stoppropagation() });
それは機能に入りますが、とにかく伝播が発生します(ドキュメントがスクロール
します)-SO(およびGoogle)でこのトピックを検索するのは驚くほど難しいので、質問する必要があります:
スクロールイベントの伝播/バブリングを防ぐ方法?
編集:
amustill (およびここの mousewheel-plugin の Brandon Aaron のおかげで解決策を実行:
https://github.com/brandonaaron/jquery-mousewheel/raw/master/jquery.mousewheel.js
android - タッチイベントの伝播
私はいくつか持っていListView
ます。各リスト要素は、次のようなレイアウトを使用して作成されます。
は次のsome_selector.xml
ようになります。
これで、ユーザーが行全体を押すと、各TextViewも押されます(実際には押されません。onClickイベントは生成されませんが、TextViewはセレクターに応じて背景を変更します)。親から子のビューにタッチイベントを伝播しないようにシステムに指示するアイデアはありますか?
actionscript-3 - AS3: カスタム イベントの伝播
外部からロードされた一連の swfs のプロジェクターをまとめようとしていますが、私の一般的な質問はできるだけ短くします。
ロードされた外部 SWF ctrl
(オーサリング中にステージに配置された MovieClip のインスタンス) の最初と最後のフレームに次のものが含まれている場合:
次に、それらのイベントを ctrl コンテナー内で「聞く」必要がありますか?
現在、「より高い」ではなく、ロードされたコンテンツ内のイベントのみをリッスンできるようです。つまり、ローダーの完全なリスナーで言うと:
その後、イベントが聞こえますが、私が言うときは聞こえません:
後者はより堅牢なようですので、私はそれを機能させるのに苦労していますが、私はいくつかの教訓を逃していると思います;-) 誰かがこれを経験しましたか? 私のアプローチは正しいですか、それとも別の道をたどるべきですか?
みんなで乾杯。
jquery - Enterキーを押してもボタンクリックがトリガーされないようにするにはどうすればよいですか?
次のコードスニペットがあります。
基本的に、Enterをチェックしてから、関数を呼び出します。
私の唯一の問題は、IE8もボタンをクリックすることです。Enterキーを押すと。他のすべてのブラウザで確認しましたが、これを行うのはIE8だけです。
それを防ぐ方法はありますか?
jquery - jQuery オートコンプリート/jScrollPane で IE イベントの伝播が期待どおりに動作しない
ajax オートコンプリートを使用するテキスト入力フィールドがあります。結果は、垂直スクロール バーのある jScrollPane パネルに表示されます。
ユーザーが jscrollPane ドロップダウンのスクロール バーをクリックすると、入力フィールドのブラー イベントが発生する IE 固有の問題が発生しています (スクロール バーの上下矢印は、以下に示すアンカー タグとして生成されます)。
私の理解では、 false を返すとイベントの伝播が停止するはずです。これが、mousedown
とclick
イベントの両方がアンカー タグに対して false を返す理由だと思います。これは Firefox と Chrome では正常に機能しますが、IE では機能しません。
以下には示されていませんが、イベントで次のコードを使用しようとしましたが、役に立ちませんでした。
私の最初の質問は次のとおりです。
あるタイプのイベントの伝播を停止すると、他のタイプのイベントの伝播が実際に停止することを期待できますか?
つまり、mousedown
false を返すイベントがトリガーされた場合、これにより、ブラーまたはフォーカス アウト イベントが発生しなくなりますか?
この問題を回避して、IE が Firefox や Chrome と同じように動作するようにするにはどうすればよいですか?
javascript - イベントの伝播と複数のイベント ハンドラ
わかりました、私は混乱しています。にグローバル クリック イベント ハンドラがありdocument
ます。ページにはいくつかのリンクがあります。各リンクは同じクリック イベント ハンドラーによって処理されます。これにより、特に、イベントがドキュメント レベルにバブリングするのを防ぎ、リンクが実行されなくなります。これらのリンクのうち、1 つには特定のクリック ハンドラーがあり、そのハンドラーがその役割を果たし、そのイベントをリンクの一般的なクリック イベントに渡します。しかし、そうではありません。
下位のイベントを発生させ、上位のイベントまでイベントをキャンセルするにはどうすればよいですか?
私がここで何を意味するか見てください
javascript - Javascript: stopPropagation は初回のみ機能しますか?
私のボタンは、最初にクリックされたときにのみ「クリック」されています。その後毎回、クリック イベントはすぐに親の onclick に伝播されます。ボタンの onclick は次のとおりです。
そして HTML アウトライン:
初めてだけでなく、毎回イベントを機能させるにはどうすればよいですか? ありがとう!
javascript - 透かしラベルを選択の上に配置すると、クリックの伝播が停止します
選択要素の上にラベルを絶対に配置するドロップダウン用の透かし/ヒントソリューションを作成しました。
残念ながら、ユーザーがラベルのある場所をクリックしても、ドロップダウンは開きません。明らかに、クリックはラベルによってブロックされています。ユーザーがラベルをクリックするとドロップダウンが開くようにする方法はありますか? javascript でドロップダウンを開くことができないのは理解していますが、クリックが発生したときにラベルを非表示にするなどのことはできますか?
編集: gmail がドロップダウンで行うようにカスタム ドロップダウンを作成することは、実行可能なオプションではありません。
jquery - jquery関数はIE7でのみ機能しません
私は次のjqueryコードを持っています:
当然、IE7を除くすべてのブラウザで動作します。IE7では、伝播を停止できません。
最新バージョンのjquery(1.6.2)を使用していますが、1.5.2も試しました。
私はここで本当に途方に暮れています。末尾のコンマはなく(私が見ることができます...)、問題を見つけることができません。私は本当にいくつかの援助に感謝します!
MTIA。
jquery - jQuery を使用して DIV の外側をクリックすると DIV を非表示にしますが、イベントの伝播は許可します
divの外側をクリックしたときにdivを閉じる方法に関する他の多くの質問を読みましたが、 .live() にバインドされている他の要素があるという複雑な問題があります
私がしたいことは、「ライブ」要素をクリックした場合を含め、ページの他の場所をクリックするとdivが消えることです。そのライブ要素をクリックすると、ハンドラーが正常に処理されます。
私が読んだ限りでは、div を閉じる処理の基本的な方法は、または $document にクリック リスナーをアタッチすることですが、これにより、他のライブ イベントが前述の body/doc ハンドラーを通過してバブリングするのを防ぐことができます。これを回避する方法はありますか?