時事自考

時事ネタを中心に個人的な考察を上げていきます。

【プログラミング】datepickerをcloneしたら効かなくなった件

datepickerで作ったものをcloneでコピーして貼り付けるというのをやってみたけど、うまくいかなかったので、いろいろ調べてみた。

とりあえず、公式ドキュメントを元に、cloneのパラメータにtrueを入れるとイベントもコピーされるという情報を元にclone(true)を実行。

 

結果としては、カレンダーは出るものの日付をクリックしても、テキストボックスは空欄のまま・・・。

どうやら、テキストボックスの向き先がコピー元になっているような感じ。

 

次に、cloneしたものにdatepickerを実行してみたが、特にエラーを出すこともなく、イベント追加もできなかった。

というわけで、これは裏があると思い、ぐーぐる先生に確認を聞いてみました。

すると、こんな情報が

なんと、どうやらそのまま追加しただけでは、いろいろと余計なものがパラメータとして付加されていてダメっぽい。

 

clone.removeClass("hasDatepicker") // classを削除
.removeData("datepicker") // 関連づけられたデータを削除
.removeAttr("id") // idも削除
.unbind() // 関連づけられた関数を削除
.datepicker(); // datepickerを再設定

この部分を全部実行しないとダメだとか。

 というか、これどうやって最初の人は見つけたんだろうかと。