繁体   English   中英

Javascript:未捕获的TypeError:引用创建的对象时无法调用未定义的方法“ add”

[英]Javascript: Uncaught TypeError: Cannot call method 'add' of undefined when referencing created object

首先,我不太熟悉Javascript的OOP方面,因此我可能需要回到绘图板上并重新编写javascript,因为我尝试做的事情可能无法实现,因此请告诉我是这样。 我一直在寻找解决方案已有一段时间,但是无法以我能理解的方式来找到相同的问题。

我正在使用本文中定义的类: https : //stackoverflow.com/a/7798773/1027442

在站点上更改组合框(onChange)时,它会调用一个Function,该Function会调用以下函数以在页面上显示一个反馈框:

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:无法调用未定义的方法'add'

我显然有什么做错了吗? 和/或快速修复,还是我必须重新考虑我的解决方法?

如果您需要任何其他信息,请告诉我。

在此先感谢,理查德

您的计时器是功能范围内的变量。 如果要创建对该函数的全局引用,或者摆脱该var关键字,请将该定时器从该函数中删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM