我正在尝试在弹出表单中创建一个时间选择器。我正在与事件委托作斗争——我能够让时间选择器在表格之外工作,但不能在表格内部工作。
我当前的代码,没有时间选择器弹出:
$(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()?