所以我编写了一个非常简单的JS函数,其作用类似于以下内容。
有一个按钮,其中包含以下代码:
<button type="submit" class="large button" onclick="addCart(76,95,73,96);">
<i class="icon-shopping-cart"></i> Add to Cart
</button>
现在点击它时,下面的页面中添加了一个非常简单的功能,如下所示:
<script type="text/javascript">
function addCart(pid, pattr, pval, pscent = 0) {
...
}
</script>
这适用于Chrome,Firefox,Chrome for Mobile,Safari for Mobile。
但Mac上的Safari上的似乎无法正常工作。相反,我收到以下错误:
ReferenceError:无法找到变量:addCart
我无法弄清楚原因。我添加一个监听器很难,因为有7个按钮和一系列正在发送的变量,我宁愿像我现在这样发送它。
答案 0 :(得分:0)
由于输入类型为“提交”,因此您似乎正在提交表单。您是否尝试将输入类型设置为“按钮”进行测试?
答案 1 :(得分:0)
我终于找到了这个问题。
该函数在Safari中创建了一个错误,因此从未定义过。我将功能更改为以下内容:
function addCart(pid, pattr, pval, pscent) {
pscent = (typeof pscent !== 'undefined') ? pscent : 0;
...
}
请注意,最大的区别是我不再使用函数声明&#39; pscent&#39;的默认值。而是我做旧学校的方法。不确定这是由旧版本的Safari引起的还是什么。
如果你因为类似的错误而在这里,请在函数中查找一些潜在的JS错误,这将阻止声明函数。
答案 2 :(得分:-1)
如果您正在使用jquery尝试使用文档就绪函数
$(document).ready(function() {
// code here
});
或在这里使用普通的javascript自执行功能
(function() {
// your page initialization code here
// the DOM will be available here
})();
可能的原因是您的功能在点击时不可用
以下是一个示例(使用jquery)https://jsfiddle.net/baphmoLt/