Javascript JS时间跟踪器未按预期工作
我有一个主要使用javascript的计时器,目前启动/停止功能运行良好。当用户点击“停止”按钮时,它从#time元素中提取时间,将其转换为十进制值并更新隐藏的#counter元素。例如,1个半小时将转换为1.50小时 我的问题是,我还想让用户手动编辑时间,所以我有一个小插件,是为了做到这一点而创建的 有两个问题:Javascript JS时间跟踪器未按预期工作,javascript,jquery,html,Javascript,Jquery,Html,我有一个主要使用javascript的计时器,目前启动/停止功能运行良好。当用户点击“停止”按钮时,它从#time元素中提取时间,将其转换为十进制值并更新隐藏的#counter元素。例如,1个半小时将转换为1.50小时 我的问题是,我还想让用户手动编辑时间,所以我有一个小插件,是为了做到这一点而创建的 有两个问题: 如果用户通过双击元素并调整来手动添加时间,然后单击save,则#counter元素尚未更新,因此它将时间提交为0 如果用户手动设置时间,然后点击开始按钮,则时钟从0开始,而不是从他们
//implement plugin
$('span#time').editable().on('editsubmit', function (event, val) {
console.log('text changed to ' + millisecondsToHours(val));
});
我认为这是每次用户手动输入时间时触发的事件
问题:如果有人手动输入时间,它会自动用转换后的值更新#计数器字段,如果他们按start,它将从该时间开始,我该如何设置
我尝试的内容:我尝试使用
格式(时间)
函数,当前它试图将值打印到控制台,但我没有得到结果我在clsStopwatch
类上创建了一个覆盖方法,如下所示:
this.override = function(time) {
lapTime = time;
}
这将更新lapTime
,以毫秒为单位传递时间。为此,我创建了一个接受字符串的新函数:
function stringToMilliseconds(str) {
var a = str.split(':'); // split it at the colons
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
return seconds * 1000;
}
这将返回id#time
元素范围中编辑字符串的毫秒数
最后,我更新了submit editable事件以调用覆盖:
$('span#time').editable().on('editsubmit', function (event, val) {
x.override(stringToMilliseconds(val));
});
以下是最新的
希望能有所帮助。@Derek没问题,如果您还需要什么,请告诉我。马特