保存された値のセットを表示するページをまとめました。ユーザーがドロップダウンメニューから新しい項目を選択するたびにページを更新する必要なく、mootools と AJAX 呼び出しを使用して値を更新しています。
HTML の各行は次のようになります。
<div class="selections">
<input class="checkbox selector" type="checkbox" CHECKED />
<span class="b_name">
<select class="b_n selector">
<!-- options -->
</select>
</span>
<span class="b_level">
<select class="b_l selector">
<!-- options -->
</select>
</span>
<span class="values">
<!-- the values -->
</span>
</div>
頭の中で、次のようなイベントリスナーを設定しました:
$$('.selector').addEvent('change', function(event){changeValues(this);});
私の問題は、"b_name"選択が変更されたときに、選択のオプションのリストを更新する必要がある"b_level"ことです。別のページの PHP スクリプトを介してデータベースから可能なオプションのリストを取得し、"b_level"の innerHTML を置き換えることで、これを実現します。それを行うと、に接続されているイベントリスナーが機能し"b_l selector"なくなります。
次のように変更する"b_l selector"たびにイベントリスナーを明示的にアタッチすることで、この問題を解決しようとしました。"b_name"
row.getElement('.b_l').addEvent('change', function(event){changeValues(row.getElement('.b_l'));});
ここで、「row」は html 要素「div.selections」です。
まだ機能しておらず、何が起こっているのかわかりません。これを解決する方法について誰か提案できますか? または、おそらく私がしていることを行うためのより良い方法です。