今天在工作中碰到需要複製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運行,故其他瀏覽器未測試)