3

カスタムイベントを作成する方法について他の質問がありますが、特定のカスタム条件を追跡する方法がわかりません。

私の例では、配列がx要素からy要素に変わったという結果を「聞く」必要があります。

アレイの上にプロトタイプを作成するのが良いかどうかはわかりませんが、それは理想的には私が必要としているものです。

ただし、より広い問題は、事実上-pseudo-のアナログであるカスタムリスナーを作成するための方法論は何かということです。

onClockStruckTwoまたはonDomChangedまたはonRapture

つまり、他の事前定義されたonEvent(onclick、onkeydownなど)が発生するのを待つのではなく、自分で作成したいということです。

そして、フレームワークの答えはありません。これがネイティブJavaScriptで実際にどのように機能するかを理解しようとしています。

TIA

4

2 に答える 2

0

私があなたに尋ねる質問は、「あなたは何から聞いているのですか?」です。サーバーで変更をリッスンしている場合はsetTimeout、AJAX呼び出しを行うことができますが、それは提案にはほど遠いでしょう。要素の長さを厳密に変更することを検討している場合は、イベントを開始することがわかっている他の何かが必要です。サーバーに関連していない場合は、「リッスン」せずに、イベントの変更をトリガーすることがわかっているものの最後に目的のJavascriptコードを添付するだけです。

編集

これがすべてのJavascriptイベントタイプのリストです。DOMオブジェクトが空であるという言及はありません。あなたはそれをしたいと思っている方法で解決するかもしれません。

于 2012-08-28T03:01:57.593 に答える
0

配列には、JavaScriptの変更に対するイベント通知システムはありません。したがって、配列がいつ変更されたかを知りたい場合は、独自の通知システムを作成する必要があります。

フレームワーク(多くはイベント通知とトリガー機能を提供します)を使用したくないので、独自のフレームワークを構築する必要があります。

イベントシステムにはいくつかの異なるアプローチがあります(一般的なメッセージコールバックを介したメッセージ、各イベントの個別のコールバック、これらのいずれかのオブジェクト指向アプローチなど...

最も簡単な(必ずしも最もエレガントであるとは限らない)のは、イベントを作成するオブジェクトに、イベントのコールバックのリストを維持させることです。次に、関係者がイベントに登録する場合、メソッドを呼び出して、イベントとコールバックを渡します。これは、DOMイベントのブラウザーDOMでaddEventListenerがどのように機能するかに似ています。そのメソッド呼び出しの受信者は、コールバックをコールバックの配列に格納します。しばらくして実際のイベントが発生すると、そのイベントに登録されている各コールバックが順番に呼び出されます。

配列の変更はそれ自体ではイベントをトリガーしないため、配列を変更し、イベントを通知する関数を実装する必要があります。

于 2012-08-28T03:11:55.033 に答える