Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我正在使用focusin/focusout,得到:uncaughttypeerror:无法读取null的属性'addEventListener'_Javascript_Dom - Fatal编程技术网

Javascript 我正在使用focusin/focusout,得到:uncaughttypeerror:无法读取null的属性'addEventListener'

Javascript 我正在使用focusin/focusout,得到:uncaughttypeerror:无法读取null的属性'addEventListener',javascript,dom,Javascript,Dom,我试图使用DOM events focusin/focusout,但得到的错误是:uncaughttypeerror:无法读取null的属性'addEventListener' 在main.js:18 在main.js:40 我正在使用Chrome作为我的浏览器,以防有帮助。谢谢 (function() { const body = document.body; const input = document.querySelector('input[type=next]');

我试图使用DOM events focusin/focusout,但得到的错误是:uncaughttypeerror:无法读取null的属性'addEventListener' 在main.js:18 在main.js:40

我正在使用Chrome作为我的浏览器,以防有帮助。谢谢

(function() {

    const body = document.body;
    const input = document.querySelector('input[type=next]');
    const overlay = document.querySelector('.overlay');

    function showFloater() {
        body.classList.add('show-floater');
    }


    function closeFloater() {
        if (body.classList.contains('show-floater')) {
        body.classList.remove('show-floater');
        }
    }

    input.addEventListener('focus', showFloater);
    input.addEventListener('blur', closeFloater);
    overlay.addEventListener('click', closeFloater);    

    // ======= for Showing bookmarks

    const bookmarksList = document.querySelector('.bookmarks-list');
    const bookmarkForm = document.querySelector('.bookmark-form');
    const bookmarkInput = bookmarkForm.querySelector('input[type=text]');

    function createBookmark(e) {
    e.preventDefault();

    console.log('processing the form');
    }    

    bookmarkForm.addEventListener('submit', createBookmark);    

})();
试试这个:

if (input !== null) {
    input.addEventListener('focus', showFloater);
} else {
    console.log('input not found');
}
始终检查您是否已使用选择器成功标识元素。

const input=document.querySelector'input[type=next];你的类型不对

我猜你想发短信


const input=document.querySelector'input[type=text]

脚本是否在尝试引用的元素之后?需要这样做。这样可以避免错误,但这无助于让事件处理程序工作……如果像这样为null,则无声跳过可能更糟糕。一方面,它将避免错误,但另一方面,它将避免错误。一个简单的document.querySelector页面加载在正确的位置时,yada yada应始终工作;如果没有,我希望立即出现错误,因为确实出了问题。好的,我编辑了我的答案,为了解决这个问题,我们需要查看将此函数与事件关联的代码。实际上,这个输入错误是所有问题的根源。我不知道我写了“下一个”。对不起,这还是个新消息。谢谢。实际上是这种类型,不是这种打字错误。你应该小心。