<td style='vertical-align: middle;'><input name='DriveTimeDaySlots[" + index + "].StartTime' class='smallTxtEntry0 driveTimedaySlot hasTimeEntry' id='DriveTimeDaySlots_" + index + "_StartTime' type='text' value='' onchange='driveTimeDaySlotValueOnchnge(this)' data-timeEntry='show24Hours: true, showSeconds: true, defaultTime: 00:00:00'/></td>" +
"<td style='vertical-align: middle;'><input name='DriveTimeDaySlots[" + index + "].EndTime' class='smallTxtEntry0 driveTimedaySlot hasTimeEntry' id='DriveTimeDaySlots_" + index + "_EndTime' type='text' value='' onchange='driveTimeDaySlotValueOnchnge(this)' data-timeEntry='show24Hours: true, showSeconds: true, defaultTime:00:00:00'/></td>" +
"<td style='vertical-align: middle;'><input name='DriveTimeDaySlots[" + index + "].DefaultTimeTaken' class='smallTxtEntry0 driveTimedaySlot hasTimeEntry' id='DriveTimeDaySlots_" + index + "_DefaultTimeTaken' type='text' value='' onchange='driveTimeDaySlotValueOnchnge(this)' data-timeEntry='show24Hours: true, showSeconds: true, defaultTime:00:00:00'/></td>" +
我在点击按钮时添加此文本框。 在Document.ready上,我写道:
$(document).ready(function () {
$('.driveTimedaySlot').timeEntry({ show24Hours: true, showSeconds: true, defaultTime: "00:00:00" });
});
但它并没有针对动态添加的文本框进行解雇
答案 0 :(得分:1)
timeEntry函数没有拾取您动态创建的新元素,因为它是在您调用该函数后创建的。所以你需要做的是每次添加行之后调用timeEntry函数(在函数结束时)。
function urfunction() {
//Your codes
$('.driveTimedaySlot').timeEntry({
show24Hours: true,
showSeconds: true,
defaultTime: "00:00:00"
});
}
答案 1 :(得分:1)
您无法在jQuery中捕获动态创建的元素的任何事件。一个技巧是你将事件代码放在一个单独的函数中(如@Sridhar R所述):
function urfunction(elementId) {
// ... any code you need to perform
// on that jquery selector...
}
并将此函数的名称放入某个on...
html属性(onchange,onclick等):
<input id="eId" ... onclick="urfunction('eId')" ... />
答案 2 :(得分:1)
我已经demo JSFIDDLE演示了如何将TimeEntry
插件附加到动态添加的文本框。希望能帮助到你 !这是代码:
HTML:
<input type="button" id="add" value="Click to add textbox and attach TimeEntry plugin to it !">
JS:
$(document).ready(function(){
$('#add').click(function(){
//document.append('<input type="text">');
$(document.createElement('input')).attr("id", 'defaultEntry').appendTo('body');
$('#defaultEntry').timeEntry({show24Hours: true, showSeconds: true});
});
});
答案 3 :(得分:1)
问题在于has类 我已将此类添加到动态添加的文本框中。 这导致了问题。 我已经删除了hastimentry类并且它有效