2011-08-03 10 views
0

私は、ページ上の最初の選択を取得し、必要に応じて後でリセットできるようにクローンするコードをいくつか持っています。私は選択をリセットするためのコードを発射するとjQuery onChangeをReplacewithの後に維持する

mySelect = jQuery('select').get(0); 
origSelect = jQuery(mySelect).clone(); 

jQuery(mySelect).change(function(){ 
    //some code 
} 

jQuery(mySelect).replaceWith(origSelect); 

のonChange機能が働いて停止します。私はそれがorigSelectと呼ばれ、その名前のonChangesに応答するからだと判断しました。私が参照している名前を変更せずに、origSelectの内容でmySelectの内容を置き換えるためのオプションがありますか?

答えて

2

cloneメソッドにパラメータtrueを渡します。

origSelect = jQuery(mySelect).clone(true); //This will clone the select with data and events 

または、origSelectのinnerHTMlをmySelectのinnerHTMlに置き換えます。

jQuery(origSelect).html(jQuery(mySelect).html()); 
+0

きちんと、 '.clone(true)'だけでこれを行うことができるかどうか分かりませんでした。 +1 –

+0

あなたの助けてくれてありがとう、これは私にとってもうまくいった! – matt

0

$(mySelect).change(...)の代わりに$(mySelect).live('change', ...)を使用してください。

+0

ありがとうございます! – matt

関連する問題