/** * Created by LinJ on 2015/11/5. * 初始化页面模块js */ //初始化各类元素以及监听 $(function () { inition(); }); //页面所有的页签名称 var itemList = ["second", "min", "hour", "day", "month", "week"]; //初始化各个页签自主选择的最大值 var max_second = 59; var max_min = 59; var max_hour = 23; var max_day = 31; var max_month = 12; var max_quarter = 12; var max_week = 7; function inition() { //初始化checkbox initCheckBox("l_second", 0, 59); initCheckBox("l_min", 0, 59); initCheckBox("l_hour", 0, 23); initCheckBox("l_day", 1, 31); initCheckBox("l_month", 1, 12); initCheckBox("l_quarter", 1, 12); initCheckBox("l_week", 1, 7); //初始化单选、复选框 $('input').iCheck({ checkboxClass: 'icheckbox_square-blue', radioClass: 'iradio_square-blue', increaseArea: '20%' // optional }); //解析按钮绑定函数 $('#explain').click(function () { reverseExp(); }); initFirstRadio(); initNoConfirmRadio(); initRadio(); initRadioCheckDiv(); initSpinner(); initCronFromTable(); initListChange(); initMonthByQuarter(); //如果已有传输过来的值,那么放入cron字段并且反解析 var instr = $("#transCron").val(); if (instr) { $("#cron").val(instr); reverseExp(); } } //初始化大量的复选框 根据div的id以及数量进行初始化 每个复选框占1/12宽度 function initCheckBox(divid, start, cnt) { if (cnt != null && cnt > 0) { for (dc = start; dc <= cnt; dc++) { $("#" + divid).append("
"); } } } //初始化每个页签第一排的radio,即*条件 function initFirstRadio() { $('.firstradio').on('ifChecked', function () { everyTime(this); }); $('.unselectradio').on('ifChecked', function () { clearSpan(this); }); //季度的第一排radio,需要指定为month $('.firstradioreactor').on('ifChecked', function () { everyTimeByName("v_month"); }); } //初始化不指定的radio 即?条件 以及最后一日条件 function initNoConfirmRadio() { $('.noconfirmradio').on('ifChecked', function () { unAppoint(this); }); $('.lastdayradio').on('ifChecked', function () { lastDay(this); }); } //初始化每个页签选择的的radio function initRadio() { //周期选择的radio $('.cycleradio').on('ifChecked', function () { writeStartAndEnd(this, "-"); }); //循环选择的radio $('.loopradio').on('ifChecked', function () { writeStartAndEnd(this, "/"); }); //指定选择的radio 即# $('.designradio').on('ifChecked', function () { writeStartAndEnd(this, "#"); }); //自主选择的radio $('.choiceradio').on('ifChecked', function () { var spanname = this.name; var theList = $("." + spanname + "List").find(':checkbox'); var maxvalue = eval("max_" + this.name); changeSpanFromCheckList(theList, maxvalue, spanname); }); //最近工作日的radio $('.nearradio').on('ifChecked', function () { writeEnd(this, "W"); }); //最后一个周几的radio $('.lastradio').on('ifChecked', function () { writeEnd(this, "L"); }); } //初始化div内容监听绑定函数,即点击div,对应radio被选中 function initRadioCheckDiv() { $('.radiocheck').click(function () { radioCheckByClick(this); }); $.each(itemList, function (n, value) { var checkList = $("." + value + "List"); checkList.click(function () { var theRadio = this.closest('.radiocheck').find(':radio'); theRadio.eq(0).iCheck('check'); }); }); } //绑定数字微调器 function initSpinner() { //绑定数字微调器 $(".cyclespin").spinner('changing', function (e, newVal, oldVal) { //trigger immediately writeStartAndEnd(this, "-"); }); $(".loopspin").spinner('changing', function (e, newVal, oldVal) { //trigger immediately writeStartAndEnd(this, "/"); }); $(".designspin").spinner('changing', function (e, newVal, oldVal) { //trigger immediately writeStartAndEnd(this, "#"); }); $(".nearspin").spinner('changing', function (e, newVal, oldVal) { //trigger immediately writeEnd(this, "W"); }); $(".lastspin").spinner('changing', function (e, newVal, oldVal) { //trigger immediately writeEnd(this, "L"); }); } //表达式结果由表格生成到cron表达式 function initCronFromTable() { //查找所有name以v_开头的span元素 var vals = $("span[name^='v_']"); var cron = $("#cron"); vals.change(function () { var item = []; vals.each(function () { item.push(this.innerHTML); }); cron.val(item.join(" ")); }); } //定义checkbox在被点击的时候的绑定函数 循环遍历页签数组 function initListChange() { $.each(itemList, function (n, value) { var checkList = $("." + value + "List").find(':checkbox'); var maxvalue = eval("max_" + value); initChangeOnCheckboxList(checkList, maxvalue, value); }); } //给list的checkbox绑定点击方法 入参是list,最大值,指定输出的span名称 function initChangeOnCheckboxList(checkList, maxvalue, spanname) { checkList.on('ifChanged', function () { //模拟div被点击过一次 $(this).closest('.radiocheck').click(); changeSpanFromCheckList(checkList, maxvalue, spanname); }); } //定义季度的月份选择监听 function initMonthByQuarter() { var checkList = $("#quarter_spe").find(':checkbox'); checkList.on('ifChanged', function () { var vals = []; checkList.each(function () { if (this.checked) { vals.push(this.value); } }); var val = "?"; val = vals.join(","); ary = val.split(","); unselectAll('l_quarter'); for (var i = 0; i < ary.length; i++) { $("#l_quarter input[value='" + ary[i] + "']").iCheck('check'); } }); } //清除选中状态 function unselectAll(listId) { for (var i = 1; i <= 12; i++) { $("#l_quarter input[value='" + i + "']").iCheck('uncheck'); } }