JavaScript 错误 : Uncaught TypeError: foo is not a function

标签 javascript jquery html

出于某种原因,JavaScript 似乎无法识别我的函数。

我在一些 HTML 中有一个按钮:

<button type="button" class="btn btn-default" id="lightOn" onclick="lightOn()">On</button>

然后是一些 JavaScript:

function lightOn(){
    $("#lightOn").addClass("active");
    $("#lightOff").removeClass("active");
    socket.emit("setting", {"light":"on"});
}

当我点击按钮时出现错误:

Uncaught TypeError: lightOn is not a function

知道为什么这行不通吗?

谢谢。

最佳答案

问题是你给你的元素相同的 id :"lightOn"。在此范围内,lightOn 是元素,它隐藏函数 ( read more )。

一个简单的解决方案是为元素提供不同的 id 或为函数提供不同的名称。

更好的方法是将脚本与 HTML 分开:

<button type="button" class="btn btn-default" id="lightOn">On</button>

$(function(){
    $('#lightOn').click(function() {
        $("#lightOn").addClass("active");
        $("#lightOff").removeClass("active");
        socket.emit("setting", {"light":"on"});
    });
});

关于JavaScript 错误 : Uncaught TypeError: foo is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36874237/

相关文章:

php - 在 PHP 上使用 JSON 时重定向

javascript - Pinterest 扩展程序如何(临时)存储网页中的图像,然后在 iframe 中访问它们?

html - 用什么代替::ng-deep

javascript - JQuery:如何获取在选择器中选择的内容

php - 防止从读卡器提交表格

javascript - 数据库加载后无法隐藏加载弹出窗口。使用 Cordova 和 JQuery

javascript - 将导航栏向下滚动到顶部后固定到顶部

javascript - 带有按钮的面板不会出现在 trumbowyg 插件上

javascript - 使用 span data-original 在悬停时加载图像

html - 如何使图像 Logo 在标题中响应