Javascript 多次触发敲除单击事件
我正在开发一个使用jquerymobile和knockout的单页phonegap应用程序 在jQueryMobilePageInit中,我定义了sampleViewModel(),如下所示Javascript 多次触发敲除单击事件,javascript,jquery,jquery-mobile,cordova,knockout.js,Javascript,Jquery,Jquery Mobile,Cordova,Knockout.js,我正在开发一个使用jquerymobile和knockout的单页phonegap应用程序 在jQueryMobilePageInit中,我定义了sampleViewModel(),如下所示 function sampleViewModel() { var self=this; var hourvalue=14; self.sample_data= ko.observableArray([ { title: "hello", hour:hourvalue }
function sampleViewModel()
{
var self=this;
var hourvalue=14;
self.sample_data= ko.observableArray([
{ title: "hello", hour:hourvalue }
]);
}
//上述视图模型的变量声明
var sample_datavar = { viewModel: new sampleViewModel() };
我想根据当前系统小时值更改小时值。如果有更好的解决方案,我们将不胜感激
我正在尝试以下逻辑,其中我将每秒获取系统小时数,并通过变量赋值将其传递给数据源
setInterval(function () {
var now = new Date();
var hour = now.getHours();
if (hour.toString().length == 1) {
var hour = '0' + hour;
}
sample_datavar.viewModel.sample_data([
{ title: "hello", hour:hourvalue }
]);
},1000);
问题是我只能在pageinit调用函数中的click事件中定义它
1) 有没有办法让knockout click函数在jquery mobile的pageshow事件中触发
2) 如果我把事情复杂化了?。有没有更好的方法来处理小时值的变化?首先,请不要每秒钟检查一次时间是否发生了变化,这会伤害我的眼睛:)--除非系统的时间发生了意外的变化 那你为什么需要点击事件呢?你为什么不在装货时开始检查,然后再检查一遍又一遍呢 您可以在下一次检查之前计算秒数(您可以在不进行检查的情况下设置新的小时数):
function sampleViewModel()
{
var self=this;
var hourvalue=14;
self.sample_data= ko.observableArray([
{ title: "hello", hour:hourvalue }
]);
}
var viewModel = new sampleViewModel();
ko.applyBindings(viewModel);
function checkHour() {
var now = new Date();
var hour = now.getHours();
var secondsBeforeNextCheck = 3600 - now.getMinutes() * 60 - now.getSeconds() +1;
document.getElementById('calculatedSeconds').innerHTML = secondsBeforeNextCheck;
if (hour.toString().length == 1) {
var hour = '0' + hour;
}
viewModel.sample_data([
{ title: "hello", hour:hour }
]);
setTimeout(checkHour, secondsBeforeNextCheck * 1000);
}
checkHour();