javascript - 尝试使用 onclick 调用函数时未定义值

标签 javascript html

当我尝试将(onclick)值发送到toggle_sprint()函数时,我收到错误,该值未定义。为什么没有定义?我认为当我输入 value="false"时它就被定义了,但显然没有。

<div class="select">
    <div id="toggle_sprint" value="false" onclick="toggle_sprint(value);" >Toggle Sprint</div>

</div>

最佳答案

div 元素没有 value 属性……而且 div 元素并非设计为可交互的,因此您通过使用 onclick 会造成一系列辅助功能问题一个div。

此外,您使用 intrinsic event attribute means that toggle_sprint() probably isn't what you think it is .

从编写良好的 HTML 开始。

使用 data-* 属性为您的 JS 提供数据。使用按钮提供点击并触发 JS 的东西。

然后使用 JavaScript 绑定(bind)您的事件处理程序。

    document.getElementById("toggle_sprint").addEventListener("click", function(event) {
      toggle_sprint(this.dataset.value);
    });

    function toggle_sprint(arg) {
      console.log(arg);
    }
<div class="select">
  <button type="button" id="toggle_sprint" data-value="false">Toggle Sprint</button>
</div>

关于javascript - 尝试使用 onclick 调用函数时未定义值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33525164/

相关文章:

javascript - 将 4 个函数调用堆叠在一起

JavaScript/jQuery : Replace 2nd, 第三个等空格,但不是文本中的第一个空格

javascript - Webpack 不会捆绑我的 .css 文件

javascript - 如何一个一个地同时加载和渲染数据

javascript - 如何一次在 Javascript Map 中设置多个值?

javascript - Ampersand JS 中的多个数据绑定(bind)

javascript - 禁用html中的复选框

javascript - 如何在 &lt;textarea&gt; 中进行撤消/重做,以便一次对 1 个单词、逐字或逐字符使用react?

html - 如何将 2 个 css 元素放在同一行(一个并排)?

html - CSS将层次列表拆分为水平排列的层次结构