我正在为一个客户的网站工作,这部分代码过去一直有效,但是突然不再起作用。没有人接触过核心代码,我什至不知道在哪里寻找解决方案。

我们使用Docebo(一种LMS),在测试中,我们要求学生选择一个答案,然后他们才能单击“下一个问题”。如果他们尚未选择答案,则该按钮将显示为灰色且不可单击。我相信该框架为此使用了YUI库。

在选择答案之前,我没有收到“ Uncaught TypeError:无法读取未定义的属性'next_page”错误。一旦发生错误,该按钮就不会起作用。

Chrome的控制台指向了这段代码...

function controlTotQuestion()
{
var info = YAHOO.util.Dom.get('answer_info');
if(tot_question == 0)
{
setTimeout(function() {
  if(YAHOO.buttonObjects.next_page)
    YAHOO.buttonObjects.next_page.set('disabled', false);
  if(YAHOO.buttonObjects.show_result)
    YAHOO.buttonObjects.show_result.set('disabled', false);
  if(info)
    info.style.display = 'none';
}, 0);

}
else
{
setTimeout(function() {
  if(YAHOO.buttonObjects.next_page)
    YAHOO.buttonObjects.next_page.set('disabled', true);
  if(YAHOO.buttonObjects.show_result)
    YAHOO.buttonObjects.show_result.set('disabled', true);
  if(info)
    info.style.display = 'block';
}, 0);
}
}


任何帮助将非常感激!

谢谢!

最佳答案

它正在尝试读取next_page的属性YAHOO.buttonObjects。因此YAHOO.buttonObjects是未定义的。换句话说,无论YAHOO是什么,它都不再具有称为buttonObjects的元素。 YAHOO是外部库吗?如果是这样,请检查他们是否已删除buttonObjects功能。

09-25 18:02