3

カスタムイベントについて頭を悩ませようとしています。カスタム イベントを登録してトリガーする方法を理解しています。ただし、真のカスタム イベントを登録することはできないようです。クリック、オンロード、ブラーなどの DOM イベントにすべてをさかのぼる必要があります。それとも間違っていますか?

たとえば、配列があるとします。配列の長さが変化したときに発火するイベントを登録したい。私の理解では、イベントを登録してから、以前に保存された長さと現在の配列の長さをチェックする setInterval タイマーを作成する必要があります。長さが変更された場合は、setInterval 内からカスタム イベントをトリガーする必要があります。

配列のイベントを登録し、長さが変化したときに自動的に起動する方法はありますか?

4

2 に答える 2

3

カスタム イベントはW3C 仕様にありますが、主要なブラウザはどれもサポートしていません。これが、他の何人かのユーザーがサードパーティのライブラリを提案した理由です。プロトタイプ、YUI、JQuery、およびその他のほとんどがこれらの機能を備えています。自分で巻くこともできます。

カスタム イベントの構文がどのように見えるかを確認したい場合は、プロトタイプ カスタム イベントのチュートリアルをご覧ください。いくつかの重要なポイント:

  • プロトタイプ カスタム イベントは、ネイティブ イベントのようにバブリングできるように、DOM 要素に関連付ける必要があります。
  • prefix:event起動するには、構文に含まれている必要があります
  • memoそれらには、任意のコンテキストまたはオブジェクトのセットがイベントでバブリングできるようにする非常に便利なパラメーターを含めることができます。
于 2009-05-13T19:29:40.550 に答える
2

要素を挿入したいときはいつでも使用する配列の addElement メソッドを作成してみませんか。そうすれば、array.length が変更された場合にコードを記述できます。removeElement と同じこと。イベントは、この種の目的で使用するためのものではありません。

于 2009-02-20T06:30:31.160 に答える