mySepsisTimer(一个简单的倒数计时器)在达到选项选择标准(sepsis-six-sirs)时启动。但是,如果用户在启动计时器功能后单击另一个选择选项,则还会运行重复的时钟。如何防止mySepsisTimer函数多次运行,或者如果用户单击(或取消选择)另一个(sepsis-six-sirs)选项,则可以重置它。
$('#sepsis-six-sirs input[type=checkbox]').change(function(){
recalculateThisIsSepsis();
});
function recalculateThisIsSepsis(){
var sum = 0;
$("#sepsis-six-sirs input[type=checkbox]:checked").each(function(){
sum+=parseInt($(this).val());
});
if (sum > 1) {
mySepsisTimer();
}}
答案 0 :(得分:1)
var callbacks = $.Callbacks("once");
callbacks.add(mySepsisTimer);
$('#sepsis-six-sirs input[type=checkbox]').change(function() {
recalculateThisIsSepsis();
});
function recalculateThisIsSepsis(){
var sum = 0;
$("#sepsis-six-sirs input[type=checkbox]:checked").each(function() {
sum+=parseInt($(this).val());
});
if (sum > 1) {
callbacks.fire();
}
}
答案 1 :(得分:0)
使用开关很简单。
on() - >添加一个evend处理程序off() - >删除事件处理程序
示例:
$("#item li").on('click', function () {
$(this).text('ITEM CLICKED')
alert('CLICKED');
//remove the event
$(this).off("click")
});
答案 2 :(得分:0)
如果您只想将mySepsisTimer限制为1次,则可以在全局范围内使用标记。
var onlyOneTimer = 0;
// ... The rest of your code ...
if (sum > 1 && onlyOneTimer == 0) {
onlyOneTimer = 1;
mySepsisTimer();
}}
这不是“最佳实践”解决方案,但它是最简单的理解。