Javascript:UncaughtTypeError:不是函数

Javascript:UncaughtTypeError:不是函数,javascript,Javascript,我正在建立一个使用以下代码的网站: HTML: <div onclick="linkPopup()"></div> <button type="button" id="hidePopup" onclick="hidePopup()">Cancel</button> function linkPopup(questionNumber) { document.getElementById('linkPopup').style.disp

我正在建立一个使用以下代码的网站:

HTML:

<div onclick="linkPopup()"></div>
<button type="button" id="hidePopup" onclick="hidePopup()">Cancel</button>
function linkPopup(questionNumber) {
        document.getElementById('linkPopup').style.display = 'block';
        document.getElementById('addLink').setAttribute('onclick', 'addLink(' + questionNumber + ')');
    }

    function hidePopup() {
        document.getElementById('linkPopup').style.display = 'none';
        document.getElementById('overlay').style.display = 'none';
    }
出于某种原因,我在Chrome的开发者工具中遇到以下错误:

未捕获类型错误:hidePopup不是函数

这一问题的解决途径是什么?我如何防止将来发生这种情况

id="hidePopup" onclick="hidePopup()"
元素id与函数名冲突

为了避免这种情况:

  • 避免全球化。(在立即调用的函数表达式(IIFE)或传递给事件处理程序(如load或DOM Ready)的函数中包装函数)
  • 使用JavaScript(例如,
    addEventListener()
    或jQuery的
    on()
    )将事件处理程序绑定到元素,而不是使用内部事件属性

  • 问题是
    id='hidePopup'
    hidePopup()
    冲突,因为它们具有相同的名称


    解决方案是将id更改为“hidePopup”以外的其他内容。

    文档中的代码在哪里?无论如何,请花一些时间了解更多关于事件处理的信息:使用冲突值,我认为这个问题与脚本标记的放置错误有关