2011-01-28 7 views
0

これは可能かどうかわかりませんが、ここに私の質問があります:jQueryは.classの将来のメンバーにプラグイン関数を追加できますか?

私のjQueryアプリケーションには、入力欄が動的に追加されています。たとえば、「新規顧客の追加」ボタンは、現在の入力フォームの後に新しい入力フォームを追加します。ここまでは順調ですね!

しかし、私は自分自身はこのように、すべての新しく作成されたフィールドに私が欲しいのマスク機能を追加する必要が見つける:

$("#customer_zipcode\\["+customerCount+"\\]).zipcodeMask(....); 

zipcodeMask(...)は必ず、ユーザーの入力した正しい郵便番号を作るためにチェックするだけの関数の例でありますコード。電話番号、クレジットカードなどのための他の同様のマスクこの部分は素晴らしいですが、私は郵便番号マスクを持っているすべての新しく作成された要素のためにそれを設定する必要があります。

.zipcodeMask()郵便番号フィールドの将来のインスタンスごとに電話をかけることができる.live()のようなものがあったらすばらしいと思っていました。

私は"UseZipCodeMask"のようなクラスを作って、郵便番号のマスクを必要とするすべての入力フィールドにclass="UseZipCodeMask"のようなことをすると思いました。

私が行うと、この:これは正常に動作します

$(".UseZipCodeMask").zipcodeMask(....); 

- このクラスを持つすべての既存の要素のために。このクラスを使用して新しいフィールドを作成した場合、それは.zipcodeMask(...)関数が機能していません。

私の郵便番号フィールドを.zipcodeMask(...)に自動的に設定させる方法はありますか?それはコードを少しきれいにするでしょう、いくつかの新しい入力フィールドが作成されるたびに、.zipcodeMask()と他の関連する関数を追加するコードがたくさんあります。

ありがとうございました!

答えて

0

どのjqueryバージョンをお使いですか? .delegateを使うことができます。これは、新しく作成された要素に「プラグインを追加する」必要がないことを意味します。