問題タブ [event-delegation]
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 - ライブイベントに関する問題
私はちょうどhttp://api.jquery.com/event.stopPropagation/を読んでいました
.live() メソッドは、ドキュメントの先頭に伝播したイベントを処理するため、ライブ イベントの伝播を停止することはできません。
私はこの声明に少し混乱していました.誰かが私に同じことをいくつかの例で説明してもらえますか?
jquery - 新しいページがレンダリングされた後、YiiのCPagination変更にイベントを添付する
これはおそらく初心者の質問なので、簡単に答えられることを願っています!! 私はこれでほぼ一週間苦労しています..どんな助けでも大歓迎です。
私はCListViewを持っていて、統合されたcpaginationを使用しています。特定の条件に応じて、このclistviewのアイテムの一部をペイントするonloadイベントでトリガーされるjavascript関数があります。ただし、このイベントは、ユーザーがページを変更したときにトリガーされないため、明らかにこれが問題になります。アイテムは、ページが最初に読み込まれたときにのみペイントされるためです。
今、私はここまで到達しました:jqueryイベントを処理する方法を学んだので、これを持っています:
このように、次、前、またはその他のページ付けボタンがクリックされるたびに、この関数が呼び出されます。アラートがポップアップします。paintMyLigas()関数内にもいくつかのアラートを追加しました。これもポップアップします。しかし、私のアイテムは再び塗装されません。(cpaginationの)新しいページがレンダリングされる前にこのイベントがトリガーされたことが原因である可能性があります。これが私が立ち往生している場所です(今週でn回目):このイベントを後でトリガーするにはどうすればよいですか?または誰かが私がこれを解決できるようにするための他の方向性を指摘できますか?私は助けが必要です!!:)
jquery - 大きなリストのクリック イベントでの jQuery デリゲートのパフォーマンス - 要素を動的に追加すると遅くなりますか?
次のようなアイテムの視覚的なリストがあります。
http://jsfiddle.net/viatropos/XCe3T/1/
実際のアプリでは、合計 200 個のアイテムしかロードしていません。しかし問題は、click
たった 200 個の項目がある場合でも、イベントがハンドラーを呼び出すのにほぼ 1 秒かかることです。イベント コールバックはmouseover
、リスト内の項目数に関係なくすぐに実行されます。
私の質問は、ページ上に要素がいくつあっても、デリゲート メソッドは同じように高速であるべきではないということです。私がやっていることはこれだけです:
上記の jsfiddle の例と Web インスペクタに移動し、レンダリングされた結果のリンクをクリックすると、さらに 200 個の要素が追加されます。追加する要素が増えるほど、速度が低下することに注意してください。奇妙なことに、6000 アイテムから開始すると、2000 から開始して 6000 に達するまで一度に 200 ずつ追加する場合よりも、デリゲート/クリックの実行がはるかに高速になります。
イベントdelegate
に対するjQueryのメソッドのパフォーマンスを向上させるにはどうすればよいですか? click
css がこれを遅くしている可能性はありますか (スタイルが多すぎるか、レイアウトが最適化されていない可能性があります)。
javascript - 実際のイベントのない JavaScript イベント委任?
私のタイトルがあまり混乱しないことを願っています。問題にタイトルを付けるより良い方法があれば教えてください。
テーブルの奇数行に背景色を適用するjQuery関数があり、ホバーすると色が赤に変わります。しかし、テーブルを動的に編集すると、jQuery が機能しなくなります。
私はJSイベント委任について多くのことを読みましたが、実際のイベントなしでこれを機能させる方法についての情報を見つけることができませんでした...
テーブルを編集した後に機能させる方法はありますか。
編集:
これはIE8で動作する必要があります
javascript - グローバルJavascriptリンクハンドラー
これが私が持っているものです:
- 単一のHTMLページ(それを呼び出す
myapp.req
)で実行され、コンテンツがAJAXを介して送受信されるWebアプリケーション - アプリケーションは、などのリンクを使用して外部から入力でき
myapp.req?id=123
、アプリケーションはID123のアイテムを含むタブを開きます。 - ページのコンテンツは主にユーザーのコンテンツであり、多くの場合、
myapp.req?id=123
- 問題は、リンクをクリックし
myapp.req?id=123
てブラウザをリロードし、ユーザーがロードしたコンテンツまたは状態を削除することです。
私が欲しいのは、宛先がmyapp.req?id=123
であるリンククリックをキャッチできるようにすることです。ページをリロードする代わりに、アイテム123のタブを開くだけで、現在ロードされているものはすべてそのままにしておきます。ただし、リンクが外部Webサイトへのリンクである場合は、明らかにブラウザをそのままにしておきます。
だから私の質問は本当に:リンククリックを処理したいかどうかをチェックするグローバルリンクハンドラーを持てますか?もしそうなら、Javascriptを実行して離れないでください?
すべてを見つけて<a>
リスナーを追加できることは理解していますが、ソリューションでリスナーを1回設定するだけで済み、ページに新しいコンテンツが読み込まれるたびにリンクハンドラーを追加する必要がないことを願っています。コンテンツはさまざまな方法でロードできるため、それらすべての場所にコードを追加するのは面倒です。
それは理にかなっていますか?
java - Android SDK のボタンを使用して、あるクラスから別のクラスへメソッドをトリガーする
質問が多すぎて申し訳ありませんが、十分に明確なものが見つかりませんでした。
Android用の小さなゲームエンジンを開発しています。タッチ スクリーンを制御するゲームパッド クラスを既に実装しています。ゲーム パッド クラスは、誰かが右側の領域に触れるとアナログ スティックを描画し、側面のボタンにも描画します。
問題は、簡単にするために、メインクラスの GAME を LEVEL クラスと GAMEPAD クラスとして持っていることです。
GAMEPAD コード内で、誰かがボタンを押したり離したりしたときにトリガーできます。問題は、ボタンを押してメインの GAME クラスに何かをトリガーしたくないということです。スイッチは GAMEPAD クラスで処理されます。
C# では、イベントとデリゲートを使用します。
Javaでは手がかりがありません..登録されている人にgpadがメソッドを呼び出すようにしたいです。
これは、メインの GAME クラスで達成したいと考えていることです。
.. void onGpadClick (e EventArgument) { if (e.Button==Button.A&&e.ButtonState==ButtonState.Pressed) Shoot();
}
前もって感謝します
javascript - ウィンドウレベルで特定の要素のイベントをリッスンします-Javascript、ライブラリなし
<p>
そのような要素が多すぎてそれぞれにonclickイベントハンドラーをアタッチできないため、ウィンドウまたはドキュメントレベルで要素のイベントをリッスンしたいと思います。
これは私が持っているものです:
上記のコードについてアドバイスが必要ですが、いいですか?また、クリックした要素が<p>
チェック以外の要素であるかどうかを確認するにはどうすればよいnodeName
ですか?たとえば、<p>
要素に要素が含まれていて<b>
、それがクリックされた場合、nodeTypeはではありb
ませんp
。
ありがとうございました。
jquery - 連続呼び出しによるjqueryイベント委任変数スコープ
jQuery 1.6 のイベント委任により、共通の親にバブルアップしたイベントに応答できます。
サンプル実装は次のようになります。
この種の構造は、ページにバインドしたいイベント トリガーが多数ある場合に非常にうまく機能します。しかし、私は奇妙な振る舞いに気づき、次の範囲について誰かが私を啓発できるかどうか疑問に思いました:
'a' の前に変数 ' ' を定義してvar bar;
'a' で使用し、'a' の実行に時間がかかる場合、'click' が 2 回トリガーされると、'bar' 変数に値が再割り当てされますか?または新しいものが作成されますか?
質問の理由は、アニメーションが完了するまでに 1.3 秒かかる「未完成」のアニメーションがあるためです。2 つの連続したクリック イベントをトリガーすると、ターゲットとタイプは正しく設定されますが、2 番目のアニメーションが最初のアニメーションに影響を与えているように見え、2 つのスコープが相互に利用可能に見えます。
私はまだアニメーションを完成させていないので、jsFiddle でオンラインにするためのワーキング セットを持っていませんが、スコープの経験則はありますか? ?
編集: 上記では、私が使用しているものと同様の状況で追加しました。上記の単純化されたケースでは、'bar' の値は 2 つの連続した呼び出しでまだ期待値を保持していますが、より複雑なケースでは (まだ) 処理を行っていますが、パラメータを具体的にコールバック関数に渡さない限り、まだ残っています。コールバックが、トリガーされた独自の呼び出しで論理的に設定された値ではなく、後続の呼び出しによって作成された値を参照するように、2 つの連続した呼び出しでパラメーターの値を変更できる条件。誰かが単純化された例でこの効果を再現できるなら、私はそれを感謝します. それを複製する jsFiddle を生成しようとするために、関数を絞り込んでいます。
ありがとう、AE
jquery - Jquery - すべての "a" タグにデリゲートをバインドする
click()
div 内のリンクをクリックすると、jq をブロックしようとします。
HTML
JS
このコードはうまく機能しますが、私のコンテンツは動的であるため、delegate()
解決策が必要です。
以下のコードは機能しません。しかし、なぜ?どうしたの?
events - YUI3 イベント委任が FF2 で機能しない
YUI 3.3.0 を使用しています。FF2 でイベント委任が機能しない。どんな手掛かり ?前もって感謝します。