我正在尝试用 JS 编写一个小的“营业时间”脚本。我为此使用了 timepicker,一切正常,除了我想每天都有一个功能,我不想复制粘贴它七次。
这是我的代码的一部分: 调用部分:
jQuery(document).ready(function() {
var week = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
for (var i = 0; i < week.length; i++) {
day = week[i];
jQuery('#' + day + '_start1').timepicker({
showLeadingZero: false,
onHourShow: MondayHourFuncStart,
//I want to add the day name instead of Monday
onMinuteShow: MondayMinFuncStart //I want to add the day name instead of Monday
});
}
函数部分:
week = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
for (var i = 0; i < week.length; i++) {
function MondayHourFuncStart(hour) //I want to add the day name instead of Monday {
var day = week[i];
var tpEndHour = jQuery('#' + day + '_end1').timepicker('getHour');
// all valid if no end time selected
if (jQuery('#monday_end1').val() == '') {
return true;
}
// Check if proposed hour is prior or equal to selected end time hour
if (hour <= tpEndHour) {
return true;
}
// if hour did not match, it can not be selected
return false;
}
所以我只想用数组值代替“星期一”
我尝试了很多东西,但我没有找到好的解决方案。
提前致谢。
最佳答案
将它们放在一个对象中:
//object containing all the week's functions
var funcs = {},
days = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
//build the functions for each day
for(var i = 0; i < days.length; i++) {
funcs[days[i]] = function() {
//stuffs
}
//or for multiple events/functions, something like
funcs[days[i]] = {
onHourShow: function() {},
onMinuteShow: function() {}
};
}
jQuery(document).ready(function() {
var week = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
for (var i = 0; i < week.length; i++) {
day = week[i];
jQuery('#' + day + '_start1').timepicker({
showLeadingZero: false,
onHourShow: funcs[day], //or funcs[day].onHourShow, depending on which you do above
onMinuteShow: funcs[day]
});
}
}
关于javascript - 函数名中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417911/