javascript - 函数名中的数组

标签 javascript jquery timepicker

我正在尝试用 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/

相关文章:

javascript - 为什么匹配表情符号的正则表达式也会匹配移动设备上的非表情符号( ' and ")?

javascript - 在真实 iPhone 上运行调试方案时,Metro Bundler 不会重新加载

java - 在Android中实现类似iOS的时间选择器

android - 如何为正确的时间格式及时添加一个额外的零

javascript - 符号之间的正则表达式模式

javascript - CSS 先于 JS,Firefox 中出现白色闪烁?

javascript - 如何分别将可拖动元素附加到多个可放置 div

javascript - javascript 中带有两个单词的 attr id

javascript - 我的 jQuery .load 是否被 CMS 阻止?

android - 如何正确实现TimePicker