我使用的是bootstrap datepicker plugin,我需要在插件末尾重載headTemplate
對象。從外部JS插件重載函數的正確語法
,看起來像這樣:
var DPGlobal = {
modes: [ ... ],
isLeapYear: function (year) {
[...]
},
[...]
headTemplate: '<thead>'+
'<tr class="datepicker-btn-group">'+
'<th class="prev"><div class="dp-btn"><i class="timely-icon-arrow-left"/></div></th>'+
'<th colspan="5" class="switch"><div class="dp-btn"></div></th>'+
'<th class="next"><div class="dp-btn"><i class="timely-icon-arrow-right"/></div></th>'+
'</tr>'+
'</thead>',
contTemplate: '<tbody><tr><td colspan="7" class="grid-picker"></td></tr></tbody>'
};
所以,不可否認我還在學習的javascript,所以我試圖總結我的周圍,爲什麼下面的代碼不會做我想做的頭。
首先,我需要檢查外部JS文件是否已加載,並且該函數可用,我試圖用jQuery的方法進行回調。我得到一些參考誤差與document
目標,我承認搞不清楚這個最佳實踐 - 我真的只想說
$('lib/bootstrap-datepicker/js/bootstrap-datepicker.js').load(function() {
// overwrite/load function
});
而是拋出一堆目標/引用錯誤的,所以不是我嘗試以下方法是因爲jQuery文檔指示我需要傳遞腳本,作爲調用函數的第一個參數,而不是目標。這經常使我困惑 - 當我想執行某種程度上全局的函數並且沒有引用任何特定的函數(因此參考document
)時,在jQuery中引用事物。
$(document).load('lib/bootstrap-datepicker/js/bootstrap-datepicker.js', function() {
origDPGlobal.headTemplate = DPGlobal.headTemplate;
DPGlobal.headTemplate = // 'string of HTML for new template';
});
最後一件事(的彈幕大家對不起),是我不理解如何headTemplate最初是通過結腸聲明:
var DPGlobal = {
[...],
headTemplate: '// html string',
contTemplate: '//html string'
};
我需要重新申報這些作爲原型對象從一個數組,像這樣?
DPGlobal[headTemplate] = '// new html string';
DPGlobal[contTemplate] = '// new html string';
非常感謝您幫助newb!