我正在开发一个phonegap应用程序,我正在使用rangeslider使常规<input type=range>
元素更具视觉吸引力。但是我遇到了以下函数的问题,该函数在onchange()
事件触发时调用:
function store_slider(){
store_slider_val=document.getElementById("slider").value; //gets the value of the slider
if(store_slider_val==100){
//if slider is at 100 give a notification
navigator.notification.confirm('Mark task as complete?',task_complete_handle,'Hey there!','YES,NO');
function task_complete_handle(button){
if(button==1){
//do stuff
}
else{
//set the slider to 90
$('#slider').val(90).change();
}
}
}
else{
//do other stuff
}
}
我面临的问题是,当滑块位于100时,navigator.notification.confirm('Mark task as complete?',task_complete_handle,'Hey there!','YES,NO');
生成的通知会出现两次而不是一次,当我在手机中试用该应用时(在我的手机中运行时只显示一次)笔记本电脑浏览器当我不使用rangelider时,代码按预期工作。
如何解决此问题? Rangeslider是一个完美而简单的解决方案,使范围输入看起来更好,我真的想继续使用它而不是切换到另一个滑块插件。
答案 0 :(得分:0)
我只是通过完全删除rangeslider.js并使用另一个插件解决了这个问题,因为它似乎已连接到实现rangelider的方式。
答案 1 :(得分:0)
我所做的是仅在值不同的情况下才更新模型,这确保了将模型推送到后端仅被调用一次,而不是两次,例如:
if (Model.value != $this.value) {
Model.value = $this.value;
PostToBackEnd();
}