Javascript:未捕获类型错误:引用创建的对象时无法调用未定义的方法“add”
Javascript: Uncaught TypeError: Cannot call method 'add' of undefined when referencing created object
首先,我对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方法,但是我收到此错误:" 未捕获的类型错误: 无法调用未定义的方法'add'
">我在这方面明显做错了什么吗?和/或快速修复,或者我将不得不重新考虑我的方法吗?
如果您需要任何进一步的信息,请告诉我。
提前感谢,理查
计时器是函数作用域中的一个变量。如果要创建对计时器的全局引用,请从该函数中删除计时器,或者删除该var
关键字。
相关文章:
- PhoneGap无法调用未定义的方法loadurl
- Javascript/jQuery - “无法调用未定义的方法'push'”,而它是定义的
- 无法调用未定义的方法,但警报(方法)仍在工作
- 不能调用未定义节点.js的方法“forEach”
- 无法调用未定义的方法“addMethod”
- 未捕获的类型错误:无法调用未定义的方法“then”
- JavaScript uncatch TypeError:无法在第二次迭代时调用未定义的方法“拼接”
- 我收到此错误:无法在 String.toJadenCase 调用未定义的方法“替换”
- 主干不能调用未定义/未加载数据的方法“toJSON”
- 获取类型错误:无法在 angularjs 控制器中调用未定义的方法 'then'
- 致命错误:调用未定义的函数 FusionCharts()
- 不能调用未定义的 GetJson 的方法“toLowerCase”
- TypeError:无法调用未定义的 Angularjs 的方法 'then'
- backbonejs:不能调用未定义的方法“绑定”
- 变量不会传递给 Ajax 调用:未定义的变量
- 问.js节点承诺.“套接字”上缺少错误处理程序.类型错误:无法调用未定义的方法“then”
- Parse.com -- Cloud Code/JS -- “无法调用未定义的方法'set'”
- “未捕获的类型错误:无法调用未定义的方法'indexOf'”时选择jqgrid行
- 致命错误:未捕获错误:调用未定义的函数loginRelocate() Javascript
- 尝试使用 angularjs 拦截器时出错 未捕获 获取 无法调用未定义的方法“推送”