首先,我对 Javascript 的 OOP 方面并不是很熟悉,所以我可能需要回到绘图板并重新编写 javascript,因为我试图做的事情可能是不可能的,所以请让我知道如果那是这样的。我一直在寻找解决方案一段时间,但无法完全找到相同的问题,我可以理解我应该改变什么。
我正在使用这篇文章中定义的类:https ://stackoverflow.com/a/7798773/1027442 。
当站点上的组合框发生更改 (onChange) 时,它会调用一个函数,该函数调用下面的函数以在页面上显示一个反馈框:
var display_ajax_feedback = function (){
document.getElementById('ajax_feedback').style.display = 'block';
/*if(document.getElementById('ajax_feedback_active').value == "active"){*/
if(timer){
timer.add(5000);
}
else{
var timer = new Timer(function() { // init timer with 5 seconds
document.getElementById('ajax_feedback').style.display = 'none';
}, 5000);
/*document.getElementById('ajax_feedback_active').value ="active";*/
}
}
这个想法是“ajax_feedback”元素显示 5 秒然后消失,除非再次调用它,在这种情况下添加 5 秒。
使用此代码时,if(timer) 行始终返回 false,因此计时器不会按时添加,而是再次调用该对象。
我引入了额外的 ajax_feedback_active 元素来强制调用 timer.add 方法,但我得到了这个错误:“Uncaught TypeError: Cannot call method 'add' of undefined”
我有什么明显做错了吗?和/或快速修复还是我将不得不重新考虑我的方法?
如果您需要任何进一步的信息,请告诉我。
在此先感谢,理查德