IIFE外部的addEventListener使其无法正常工作

时间:2018-10-10 13:48:25

标签: javascript addeventlistener iife

因此,我阅读了分配书,我应该将代码包装在IIFE中,以帮助保持示波器整洁,以最大程度地减少潜在错误。我发现我需要使用在一个文件中创建的一些变量,在另一个文件中创建-因此要将它们放在全局范围内(或在IIFE之外)。

问题:当我尝试删除IIFE时,addEventListener停止工作。如括号中所示,这表明一旦删除IIFE,就可以找到功能。

使用IIFE enter image description here 没有IIFE enter image description here

如果有帮助,则代码:

"use strict";
//Search the LS for the user input
function findSearchInput() {
    //Get search input
    let searchInput = document.querySelector("#searchInput").value;
    //Search array of show objects in LS for input or alert empty
    let showList = JSON.parse(localStorage.getItem("showList") || alert("Empty"));

    for (let i = 0; i < showList.length; i++) {

        if (searchInput === showList[i].title) {
            let foundShow = showList[i];
            document.querySelector("#resultTitle").innerHTML = foundShow.title;
            document.querySelector("#resultGenre").innerHTML = foundShow.genre;
            document.querySelector("#resultType").innerHTML = foundShow.type;
            document.querySelector("#resultWatched").innerHTML = foundShow.watched;
        };
    };
};

 document.querySelector("#searchBtn").addEventListener("click", findSearchInput);
 document.querySelector("#randomBtn").addEventListener("click", findRandom);

如果我在这里所说的略有偏离,我深表歉意。如果您需要任何答案,可以进一步解释。

谢谢您的帮助。

0 个答案:

没有答案