今天在工作中碰到需要复制table中某一行的操作,但行中有一个text带有datepicker功能,clone以后的新行有日历的图标但点击图标就是不弹出日历,后来比较丑陋的解决了(因为对jquery-ui一窍不通).贴出来分享一下:
function addOne(tblName){
var index = parseInt($("#"+tblName+" tbody tr:last-child td:first span").html())+1;
var $cloneLine = $("#"+tblName+" tbody tr:last-child").clone();
$cloneLine.find("td").eq(1).html('<input type="text" />'); // $cloneLine.find("td").eq(1)这个td包含日期输入项,我把它用普通的text代替
$cloneLine.find("td").eq(1).children("input:text").eq(0).datepicker({ //把刚刚替换的text加上datepicker属性
changeMonth: true,
changeYear: true,
dateFormat: 'yy-mm-dd',
showAnim: 'fadeIn',
duration: 'fast',
prevText: '',
nextText: '',
showOn: 'button',
buttonImageOnly: true,
buttonImage: 'images/date_time_06.gif',
showButtonPanel: true,
monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月',
'七月', '八月', '九月', '十月', '十一月', '十二月']
});
$cloneLine.appendTo("#"+tblName+" tbody");
$("#"+tblName+" tbody tr:last-child td:first span").html(index);
$("#"+tblName+" tbody tr:last-child td:first input:hidden").val(index);
$("#"+tblName+" tbody tr td:last-child").html("");
$("#"+tblName+" tbody tr:last-child td:last").html('<span class="icon icon-delone"></span>');
$('#'+tblName+" tbody tr:last-child input:text, "+'#'+tblName+" tbody tr:last-child select").val('');
}
以后项目中的如碰到类似问题可以照此方法做,但肯定不是最好的方法.
我曾试过不做替换,直接加.datepicker但是不行...
各位大大有啥更好的方法吗?
(本项目只在IE8运行,故其他浏览器未测试)