jqueryを使用して新しいフォーム要素を動的に追加しています。何らかの理由で、.datepicker()
追加した新しい要素では への呼び出しは機能しませんが、動的に追加されなかった古い要素では機能しました。.attr('style', 'color: red;')
の代わりに置くと.datepicker()
、機能します。ドキュメント準備完了関数内の元の呼び出しが機能することに注意してください。
これは、追加ボタンがクリックされたときに呼び出されるコードです。
function addMulti(name) {
it = $('[name=' + name + ']');
base = it.data('baseName');
on = it.data('number') + 1;
name = base + "-" + on;
copy = it.clone()
copy.prop("name", name).attr("data-is-default", false).removeAttr('data-number').
fadeIn('slow').appendTo(it.parent());
it.data('number', on);
if(it.hasClass('date-pickable')) { // <-- This returns true, I checked.
copy.datepicker();
// Where if I add clone.attr('style', 'color: red;') it turns it red.
}
}
これは、その時点で作成されたすべてのフィールドを日付ピッカーにする呼び出しです。
<script type="text/javascript">
$(document).ready(function() {
$("input.date-pickable").datepicker()
});
</script>
firebug または google chrome の「要素の検査」に表示されるエラーはありません。しかし、何か奇妙なことが起こっています。document.ready 関数と同じ呼び出しを firebug consul に入力しても、新しく追加された要素はまだ日付ピッカーになりません。しかし、出力にカーソルを合わせると、対象とする要素が選択されます。
$("input.date-pickable").datepicker() // What I typed in
Object[input#dp1371953134342.field-input 06/22/2013, input#dp1371953134343.field-input, input#dp1371953134342.field-input 06/22/2013, input#dp1371953134342.field-input 06/22/2013] // What it put out. The last three numbers are the IDs JQuery assigned to the added elements. I checked.