单击链接时无法识别Javascript函数

单击链接时无法识别Javascript函数,javascript,jquery,Javascript,Jquery,在下面的“简化”JavaScript代码中,函数消息_category_ref存在问题,它为某些元素创建了链接。单击创建的链接时,控制台显示错误: 未捕获引用错误-未定义showTopics 当我在return语句中包含alert函数而不是如下所示的showTopics时,将调用alert。不确定为什么showTopics不被认可,以及如何解决这个问题 简化代码: 您的功能不是全局的。它位于一个封闭区域内。您需要将其添加到返回对象中,以允许在userapp之外访问它: 还可以将onclick更改

在下面的“简化”JavaScript代码中,函数消息_category_ref存在问题,它为某些元素创建了链接。单击创建的链接时,控制台显示错误:

未捕获引用错误-未定义showTopics

当我在return语句中包含alert函数而不是如下所示的showTopics时,将调用alert。不确定为什么showTopics不被认可,以及如何解决这个问题

简化代码:


您的功能不是全局的。它位于一个封闭区域内。您需要将其添加到返回对象中,以允许在userapp之外访问它:

还可以将onclick更改为引用它,如下所示:

onclick="userapp.showTopics(\'' ... )"

您的功能不是全局的。它位于一个封闭区域内。您需要将其添加到返回对象中,以允许在userapp之外访问它:

还可以将onclick更改为引用它,如下所示:

onclick="userapp.showTopics(\'' ... )"

函数名是用于初始化userapp的匿名函数的本地名称,因此无法从onclick属性访问它-这些表达式在全局范围内求值

将返回行更改为:

然后你可以做:

onclick="userapp.showTopic(...

函数名是用于初始化userapp的匿名函数的本地名称,因此无法从onclick属性访问它-这些表达式在全局范围内求值

将返回行更改为:

然后你可以做:

onclick="userapp.showTopic(...

onclick只能访问全局函数。您的函数名是userapp函数的本地名称。您在onclick事件中尝试过userapp.showTopics吗?@Barmar-根据您的评论回答。这就是问题所在。@Pavlo可以,但他必须先公开该方法。@stakolee我也这么认为,直到您看到初始化userapp的匿名函数定义末尾的,它会立即调用所述匿名函数,因此返回的对象被分配给userapp。onclick只能访问全局函数。您的函数名是userapp函数的本地名称。您在onclick事件中尝试过userapp.showTopics吗?@Barmar-根据您的评论回答。这就是问题所在。@Pavlo可以,但他必须先公开该方法。@stakolee我也这么认为,直到您看到初始化userapp的匿名函数定义末尾的,它会立即调用所述匿名函数,因此返回的对象被分配给userapp。
onclick="userapp.showTopic(...