ポップアップフォーム内にタイムピッカーを作成しようとしています。イベントの委譲に苦労しています。タイムピッカーをフォームの外側で動作させることはできますが、内側では動作させません。
タイムピッカーポップアップを持たない私の現在のコード:
$(document).ready(function() {
$('#timepick').timepicker({
showPeriod: true,
showLeadingZero: true
});
});
$(function() {
$( "#dialog-form" ).dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
"Add Time": function() {
$( "#time-table tbody" ).append( "<tr>" +
"<td>" + time.value + "</td>" +
"</tr>" );
$( this ).dialog( "close" );
},
Cancel: function() {
$( this ).dialog( "close" );
}
},
});
$("#add-time").button().click(function() {
$( "#dialog-form" ).dialog( "open" );
});
});
これは、ポップアップ ボックスの内側では機能せず、外側の #timepick に対してのみ機能します。どうにかして .on() jquery 関数を利用する必要があることはわかっています。
$(document).ready(function() {
$('#timepick').on("click", function(){
timepicker({
showPeriod: true,
showLeadingZero: true
});
});
どちらも機能しませんでした。
現在のトライアウトのペーストビン:
編集:
したがって、これはほとんど機能します:
$(document).ready(function() {
$('#dialog-form').on('click','#time',function() {
$('#time').timepicker({
showPeriod: true,
showLeadingZero: true
});
});
});
唯一の問題は、現在、ボックスをクリックしてイベント ハンドラーを追加し、クリックしてオフにし、再度オンにする必要があることです。つまり、作業する前にクリックする必要があります。すぐに着火させるにはどうしたらいいですか?どういうわけか .trigger() を使用していますか?