2011-06-14 10 views
3

ビルドされたjQueryウィジェットを動的コンテンツに適用しようとしています。たとえば、ajax呼び出しやクローン作成などのDOM操作です。動的にjQuery UIウィジェットを初期化する

今のところ私はうまくいくものがありますが、ちょっとしたハックです。これを改善するための提案をお見せしたいと思います。覚えておくべきことは、JSがPHPによって生成されているということです。個々のページ用にJSを作成する必要がある状況を避けたいと思います。それは私がちょうどウィジェットの型を定義し、いくつかの変数を設定し、PHPがJSを生成するようにすることができます。理由は、私はデータベースから変数を渡し、ウィジェットへのローカライゼーションを提供する必要があります。

jQuery('body').delegate('.juiDateStart', 'focusin', function (e) { 
    $(this).datepicker({ 
     'minDate': 0, 
     'onClose': function() { 
      juiDtp_343875e72a11870172ae2922f7dd9f4f($(this)); 
     } 
    }); 
}); 

上記のコードは、クローニングおよびAjaxのために正常に動作するが、明らかにすべてとfocusIn日付ピッカーを初期化することは、理想的な解決策ではありません。私はまた、このシステムでオートコンプリートとカスケードセレクトをロードしています。

ありがとうございます。

答えて

1

このように動的に作成されたJavascript関数がある場合は、オーバーヘッドが大きくなる前にあまり抽象度が高いと思います。それぞれのfocusinのためにこの関数を初期化する方法は、きれいに見えるようです。たぶん、このプロセスAをスピードアップになる詳細なクラス別(又はIDごとのID)と機能の開口部にセレクタ「を本体」部分を交換

少し(つまり、ページにたくさんのアイテムがある場合など)、現時点では(これが投稿されたときに)あなたが持っている方法は問題ないと思われます。

+0

あなたの提案をお寄せいただきありがとうございます。これを実行すると、実際にページを少しスピードアップしました。 –

関連する問題