使用jQuery 1.9.1& jQuery-ui 1.10.3。想要使用微调器进行一段时间(小时)控制。除了有一组有限的值之外,我希望它一旦超过23就将它翻到0。我有那部分工作。我遇到的问题是什么时候开始。
我用于微调器的代码:
$(function() {
$("#mystarttime").spinner({
numberFormat: "d2",
spin: function(event, ui) {
if (ui.value > 23) {
$(this).spinner("value", 0);
return false;
}
else if (ui.value < 0) {
$(this).spinner("value", 23);
return false;
}
console.log("start spin - " + ui.value );
}
});
});
输入:
<label for="mystarttime">Start Time (hr):</label>
<input type="text" id="mystarttime" name="startTimeVal">
当页面加载时,微调器中没有任何内容。如果我单击微调器上的向上箭头(以递增),spin
事件将触发&amp;我在控制台中收到一条消息,显示值(1)。但是,如果我单击微调器上的向下箭头,spin
事件不会触发,但我在输入框中得到23。直到我再次单击向下箭头,spin
事件才会触发,输入(和控制台)都显示22.
如果我单击向下箭头一次,输入框将显示23(但没有事件触发)。 之后,如果我单击向上箭头一次,输入显示00(但没有事件触发)。
我必须做错事或查看错误的事件以检测翻滚和放大改变,但没有找到一个好的例子,两个翻身并看到事件。非常感谢有关如何解决此问题的任何想法或建议。
答案 0 :(得分:1)
spin:
。但change:
被调用 - 这应该可以解决问题:
function log(value) {
console.log(value);
}
$(function() {
$("#mystarttime").spinner({
numberFormat: "d2",
spin: function(event, ui) {
if (ui.value > 23) {
$(this).spinner("value", 0);
return false;
}
else if (ui.value < 0) {
$(this).spinner("value", 23);
return false;
}
log(ui.value);
},
change: function(event, ui) {
log($(this).spinner("value"));
}
});
});