📄 spinner.js
字号:
if (isNaN(this.flags.places) || this.flags.places == Infinity) {
val = num.toExponential();
} else {
val = num.toExponential(this.flags.places);
}
} else {
if (num.toFixed && num.toPrecision) {
if (isNaN(this.flags.places) || this.flags.places == Infinity) {
val = num.toPrecision((1 / 3).toString().length - 1);
} else {
val = num.toFixed(this.flags.places);
}
} else {
val = num.toString();
}
}
if (num >= 0) {
if (this.flags.signed == true) {
val = "+" + val;
}
}
val = val.split(/[eE]/);
if (this.flags.separator.length > 0) {
if (num >= 0 && val[0].substr(0, 1) != "+") {
val[0] = " " + val[0];
}
var i = val[0].lastIndexOf(".");
if (i >= 0) {
i -= 3;
} else {
i = val[0].length - 3;
}
for (; i > 1; i -= 3) {
val[0] = val[0].substr(0, i) + this.flags.separator + val[0].substr(i);
}
if (val[0].substr(0, 1) == " ") {
val[0] = val[0].substr(1);
}
}
if (val.length > 1) {
if ((this.flags.eSigned == true) && (val[1].substr(0, 1) != "+")) {
val[1] = "+" + val[1];
} else {
if ((!this.flags.eSigned) && (val[1].substr(0, 1) == "+")) {
val[1] = val[1].substr(1);
} else {
if ((!this.flags.eSigned) && (val[1].substr(0, 1) == "-") && (num.toFixed && num.toPrecision)) {
if (isNaN(this.flags.places)) {
val[0] = num.toPrecision((1 / 3).toString().length - 1);
} else {
val[0] = num.toFixed(this.flags.places).toString();
}
val[1] = "0";
}
}
}
val[0] += "e" + val[1];
}
this.setValue(val[0]);
if (x > val[0].length) {
x = val[0].length;
}
return x;
}});
dojo.widget.defineWidget("dojo.widget.TimeSpinner", [dojo.widget.TimeTextbox, dojo.widget.Spinner], function () {
dojo.experimental("dojo.widget.TimeSpinner");
}, {postMixInProperties:function (args, frag) {
dojo.widget.TimeSpinner.superclass.postMixInProperties.apply(this, arguments);
this._spinnerPostMixInProperties(args, frag);
}, postCreate:function (args, frag) {
dojo.widget.TimeSpinner.superclass.postCreate.apply(this, arguments);
this._spinnerPostCreate(args, frag);
}, adjustValue:function (direction, x) {
var val = this.getValue();
var format = (this.flags.format && this.flags.format.search(/[Hhmst]/) >= 0) ? this.flags.format : "hh:mm:ss t";
if (direction == 0 || !val.length || !this.isValid()) {
return;
}
if (!this.flags.amSymbol) {
this.flags.amSymbol = "AM";
}
if (!this.flags.pmSymbol) {
this.flags.pmSymbol = "PM";
}
var re = dojo.regexp.time(this.flags);
var qualifiers = format.replace(/H/g, "h").replace(/[^hmst]/g, "").replace(/([hmst])\1/g, "$1");
var hourPos = qualifiers.indexOf("h") + 1;
var minPos = qualifiers.indexOf("m") + 1;
var secPos = qualifiers.indexOf("s") + 1;
var ampmPos = qualifiers.indexOf("t") + 1;
var cursorFormat = format;
var ampm = "";
if (ampmPos > 0) {
ampm = val.replace(new RegExp(re), "$" + ampmPos);
cursorFormat = cursorFormat.replace(/t+/, ampm.replace(/./g, "t"));
}
var hour = 0;
var deltaHour = 1;
if (hourPos > 0) {
hour = val.replace(new RegExp(re), "$" + hourPos);
if (dojo.lang.isString(this.delta)) {
deltaHour = this.delta.replace(new RegExp(re), "$" + hourPos);
}
if (isNaN(deltaHour)) {
deltaHour = 1;
} else {
deltaHour = parseInt(deltaHour);
}
if (hour.length == 2) {
cursorFormat = cursorFormat.replace(/([Hh])+/, "$1$1");
} else {
cursorFormat = cursorFormat.replace(/([Hh])+/, "$1");
}
if (isNaN(hour)) {
hour = 0;
} else {
hour = parseInt(hour.replace(/^0(\d)/, "$1"));
}
}
var min = 0;
var deltaMin = 1;
if (minPos > 0) {
min = val.replace(new RegExp(re), "$" + minPos);
if (dojo.lang.isString(this.delta)) {
deltaMin = this.delta.replace(new RegExp(re), "$" + minPos);
}
if (isNaN(deltaMin)) {
deltaMin = 1;
} else {
deltaMin = parseInt(deltaMin);
}
cursorFormat = cursorFormat.replace(/m+/, min.replace(/./g, "m"));
if (isNaN(min)) {
min = 0;
} else {
min = parseInt(min.replace(/^0(\d)/, "$1"));
}
}
var sec = 0;
var deltaSec = 1;
if (secPos > 0) {
sec = val.replace(new RegExp(re), "$" + secPos);
if (dojo.lang.isString(this.delta)) {
deltaSec = this.delta.replace(new RegExp(re), "$" + secPos);
}
if (isNaN(deltaSec)) {
deltaSec = 1;
} else {
deltaSec = parseInt(deltaSec);
}
cursorFormat = cursorFormat.replace(/s+/, sec.replace(/./g, "s"));
if (isNaN(sec)) {
sec = 0;
} else {
sec = parseInt(sec.replace(/^0(\d)/, "$1"));
}
}
if (isNaN(x) || x >= cursorFormat.length) {
x = cursorFormat.length - 1;
}
var cursorToken = cursorFormat.charAt(x);
switch (cursorToken) {
case "t":
if (ampm == this.flags.amSymbol) {
ampm = this.flags.pmSymbol;
} else {
if (ampm == this.flags.pmSymbol) {
ampm = this.flags.amSymbol;
}
}
break;
default:
if (hour >= 1 && hour < 12 && ampm == this.flags.pmSymbol) {
hour += 12;
}
if (hour == 12 && ampm == this.flags.amSymbol) {
hour = 0;
}
switch (cursorToken) {
case "s":
sec += deltaSec * direction;
while (sec < 0) {
min--;
sec += 60;
}
while (sec >= 60) {
min++;
sec -= 60;
}
case "m":
if (cursorToken == "m") {
min += deltaMin * direction;
}
while (min < 0) {
hour--;
min += 60;
}
while (min >= 60) {
hour++;
min -= 60;
}
case "h":
case "H":
if (cursorToken == "h" || cursorToken == "H") {
hour += deltaHour * direction;
}
while (hour < 0) {
hour += 24;
}
while (hour >= 24) {
hour -= 24;
}
break;
default:
return;
}
if (hour >= 12) {
ampm = this.flags.pmSymbol;
if (format.indexOf("h") >= 0 && hour >= 13) {
hour -= 12;
}
} else {
ampm = this.flags.amSymbol;
if (format.indexOf("h") >= 0 && hour == 0) {
hour = 12;
}
}
}
cursorFormat = format;
if (hour >= 0 && hour < 10 && format.search(/[hH]{2}/) >= 0) {
hour = "0" + hour.toString();
}
if (hour >= 10 && cursorFormat.search(/[hH]{2}/) < 0) {
cursorFormat = cursorFormat.replace(/(h|H)/, "$1$1");
}
if (min >= 0 && min < 10 && cursorFormat.search(/mm/) >= 0) {
min = "0" + min.toString();
}
if (min >= 10 && cursorFormat.search(/mm/) < 0) {
cursorFormat = cursorFormat.replace(/m/, "$1$1");
}
if (sec >= 0 && sec < 10 && cursorFormat.search(/ss/) >= 0) {
sec = "0" + sec.toString();
}
if (sec >= 10 && cursorFormat.search(/ss/) < 0) {
cursorFormat = cursorFormat.replace(/s/, "$1$1");
}
x = cursorFormat.indexOf(cursorToken);
if (x == -1) {
x = format.length;
}
format = format.replace(/[hH]+/, hour);
format = format.replace(/m+/, min);
format = format.replace(/s+/, sec);
format = format.replace(/t/, ampm);
this.setValue(format);
if (x > format.length) {
x = format.length;
}
return x;
}});
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -