【问题标题】:React.js and jquery Uncaught ReferenceError: (function) is not defined at HTMLTableRowElement.onclickReact.js 和 jquery Uncaught ReferenceError: (function) is not defined at HTMLTableRowElement.onclick
【发布时间】:2018-09-30 05:16:10
【问题描述】:

在我的网络应用程序中使用 js,我只是在创建工作表,但遗憾的是 onClick 上 Uncaught ReferenceError: (function) is not defined at HTMLTableRowElement.onclick

这里是表格代码$("#usertable").append("<tr onclick=\"displaySmth('" + smth_value + "')\"><td>" + username + "</tr></td>");

以及显示smth_value的函数

   displaySmth(somevalue){
    $("#smth_id").text(somevalue)
}

【问题讨论】:

  • 我认为您需要分享更多代码。你在哪里添加 onclick 监听器?
  • 对不起,我写这个问题的时候失败了,已经更新了,现在你可以看到 onclick 监听器了

标签: javascript jquery reactjs


【解决方案1】:

根据您添加点击侦听器的方式,displaySmth 函数必须是 window 对象的直接子对象;如果您使用的是 React.js,那么情况可能并非如此。

一个更common way在React中添加点击监听的方法是注入函数本身(而不是名字),像这样:

$("#usertable").append(
    <tr onclick={displaySmth}><td>{username}</td></tr>
);

当你想在你的监听器中使用参数时,这有点复杂,但概念是一样的。

【讨论】:

  • 你确定不需要用户引号吗?当我使用简单的$("#usertable").append( &lt;tr&gt;&lt;td&gt;+username+&lt;/td&gt;&lt;/tr&gt;) 时,它甚至没有在表格中给我用户名
  • 这取决于代码的位置;如果它在一个被编译的文件中(这在 react 中最常见),那么 html-ish 对象周围的引号就不需要了,但如果它在一个未编译的 js 文件中,那么它们将是。 This 是一个很好的 React 表格​​入门教程
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 1970-01-01
  • 2015-08-11
相关资源
最近更新 更多