javascript - onclick 找不到要执行的函数

标签 javascript

我正在使用 onclick() 函数将商品添加到购物车。

<button class='btn pull-right' id = 'cartBtn' onclick = 'addToCart(<?php echo $id;?>)'><span class='glyphicon glyphicon-shopping-cart'></span></button>

这是js:

$(document).ready(function(){
    var cart = [];
    var id = $("#itemId").text();
    var stockAvailable = $("itemStock").text();
    var inCart = false;


    function addToCart(item){
        id = item;
            if (inCart == true){
                console.log("item already in cart");
            }
            else{
                cart.push(id);

            }

    }

但是,单击按钮后我在控制台中收到以下错误:

ReferenceError: addToCart is not defined

我已经将 js 代码写在一个单独的文件中,并将其包含在 head 部分中。 这里可能是什么问题

最佳答案

您不能在未定义的情况下使用 addToCart。 你可以在你想使用这个函数的地方定义它。

$(document).ready(function() {
  function addToCart(item) {
    console.log('added');
  }
});
addToCart('item');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

正确的方式

function addToCart(item) {
  console.log('added');
}
$(document).ready(function() {

});
addToCart('item');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

关于javascript - onclick 找不到要执行的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56945358/

相关文章:

javascript - AngularJS:在将 resolve 与 Controller 一起使用时更正 minify-able 语法

javascript - 如何使用 Typescript 检查 Date 数据类型变量是否在过去?

javascript - 具有固定标题的可调整大小的列表

javascript - 使用 `textarea.value("设置值“)` throws “` TypeError`: `textarea.value` is not a function”

javascript - 使用 jquery Accordion 折叠仅在一个部分上工作

javascript - 通过 jQuery For 循环问题动态构建 DOM

javascript - 使用 radio 启用/禁用 meteor 复选框,使用复选框显示/隐藏

javascript - 使用 simplePagination.js 显示 json 数据?

javascript - 如何在 JavaScript session cookie 中存储变量?

javascript - isPrototypeOf() 在 JavaScript 中处理继承时的用法