未捕获的类型错误:'download'不是一个函数。

3
我在我的页面上有一个按钮,指向函数download()
<a class="myButton" onclick='return download(this);'>Download</a>

download():

function download(button)
{
  console.info(button);
  return true;
}

点击按钮后,我得到:

Uncaught TypeError: download is not a function
    at HTMLAnchorElement.onclick (mbnet.html:1153)

然而,如果我打开开发者控制台并执行download,那么我会得到:

function download(button)
{
  console.info(button);
  return true;
}

如果我执行 download(),那么我会得到:
undefined
true

很明显函数已经被定义了,为什么我还是看到这个错误?是因为我使用了fluid渲染按钮吗?

我也尝试过用 $(document).ready(); 包装函数 download(),但是没有任何改变。

$(document).ready(
  function() {

    function download(button)
    {
      console.info(button);
      return true;
    }
  }
);

2
请更改函数名称,它将正常工作。 - Sanjay
@Ryad.iv,不,没有其他js代码,download()就无法工作,很简单。 - sinisake
我把它改成了 download1,现在它可以工作了!如果我现在在控制台中执行 download,那么我会得到 VM5344:1 Uncaught ReferenceError: download is not defined at <anonymous>:1:1 的错误提示。 - Black
@sinisake,你能解释一下为什么吗? - Ryad Boubaker
@Satpal,谢谢,我刚刚检查了一下。 :) - sinisake
显示剩余2条评论
1个回答

5
请更改函数名。
<html>
<script>
function download1(button)
{
  console.info(button);
  return true;
}
</script>
<body>
    <a class="myButton" onclick='download1(this);'>Download</a>
</body>
</html>

我把它改成了download1,现在它可以工作了!如果我现在在控制台中执行下载,那么我会得到“VM5344:1未捕获的引用错误:download未定义于<匿名>:1:1”所以看起来download甚至都没有被保留?!这是一个奇怪的浏览器bug吗? - Black
*笑*...... - user5066707

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接