2

要素のラッパーを構築しようとしていますが、ラッパーのシームレスな統合を作成したいと考えています。これを実現するために、ある要素から別の要素にすべてのイベントを伝達し、そうするためのミラーを作成したいと考えています。

#element-1 と #element-2 があるとします。#element-1 に「クリック」ハンドラを指定します。望ましい動作は、#element-1 または #element-2 のいずれかでクリックが発生するたびに、ハンドラーが起動することです。また、#element-2 に別の「クリック」ハンドラーが割り当てられている場合は、両方のハンドラーがトリガーされます。

無限にバブリングする心配はありません。それに対抗するメカニズムを見つけます。私の質問は、すべてのイベント名を書き込まずに、これら 2 つの要素のすべての可能なイベントに対してこのイベント ミラーリングを実現するにはどうすればよいかということです (カスタム イベントも取得したいので、イベント名をハードコーディングすることはオプションではありません)。

私が説明したことを達成する限り、jQuery を使用しないソリューションを受け入れます。

4

1 に答える 1

0

div ID #event-1、#event-2、... #event-10 内に 10 個のアンカー要素があるとします。以下のようにイベントハンドラを書くことができます。

for(i=0;i<=10;i++) {
  if ($(".event-"+i).find('a').length > 0) {
    var g = $(".event-"+i).find('a');
    g.click(function(){
      /* Your code */
    });
  }
}
于 2015-12-23T11:41:41.193 に答える