Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.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 我的AddEventListener函数在任何浏览器中都不起作用。如何解决这个问题?_Javascript_Html - Fatal编程技术网

Javascript 我的AddEventListener函数在任何浏览器中都不起作用。如何解决这个问题?

Javascript 我的AddEventListener函数在任何浏览器中都不起作用。如何解决这个问题?,javascript,html,Javascript,Html,以下是我的JS代码: const BASE\u URL=”http://localhost:3000"; const CATEGORIES_URL=`${BASE_URL}/CATEGORIES`; const ITEMS_URL=`${BASE_URL}/ITEMS`; window.addEventListener(“加载”,()=>{ getCategories(); createNewCategory(); }); 常量main=()=>{ 返回文档。查询选择器(“主”); }; //

以下是我的JS代码:

const BASE\u URL=”http://localhost:3000";
const CATEGORIES_URL=`${BASE_URL}/CATEGORIES`;
const ITEMS_URL=`${BASE_URL}/ITEMS`;
window.addEventListener(“加载”,()=>{
getCategories();
createNewCategory();
});
常量main=()=>{
返回文档。查询选择器(“主”);
};
//加载所有类别
常量getCategories=()=>{
取回(“http://localhost:3000/categories")
.then((response)=>response.json())
。然后((数据)=>渲染类别(数据));
};
const renderCategories=(categoriesData)=>{
forEach((category)=>renderCategoriesCard(category));
};
const renderCategoriesCard=(类别)=>{
让categoriesCard=document.createElement(“div”);
categoriesCard.className=“卡片”;
categoriesCard.dataset.id=categories.id;
categoriesCard.innerHTML=`
${categories.name}

添加项 `; categoriesCard.lastElementChild.addEventListener(“单击”,displayItemForm); main().appendChild(categoriesCard); 让itemsList=document.createElement(“ul”); setAttribute(“类”、“项列表”); itemsList.dataset.id=categories.id; 分类卡。附件子项(项目列表); categories.items.forEach((item)=>renderItems(item,itemsList)); }; const createNewCategory=()=>{ let form=document.querySelector(“a”); 表单.addEventListener(“单击”,显示类别表单); }; 常量displayCategoryForm=()=>{ 让categoryForm=document.getElementById(“类别表单”); 让html=` 名称 `; categoryForm.innerHTML=html; 文件。查询选择器(“表格”)。添加的文本列表器(“提交”,创建类别); }; 常量createCategory=()=>{ event.preventDefault(); console.log(“点击表单”); 常量类别={ 名称:document.getElementById(“名称”).value, }; //createNewCategory(); //投递 获取(类别和URL){ 方法:“张贴”, 正文:JSON.stringify(类别), 标题:{ “内容类型”:“应用程序/json”, 接受:“应用程序/json”, }, }) .then((response)=>response.json()) 。然后((数据)=>{ 渲染分类(数据); clearCategoryForm(); }); }; const renderItems=(项目,列表)=>{ 让itemCard=document.createElement(“li”); itemCard.id=`item-${item.id}`; itemCard.innerText=`Title:${item.Title}`; 让releaseBtn=document.createElement(“按钮”); releaseBtn.className=“删除”; releaseBtn.dataset.itemId=item.id; releaseBtn.innerText=“删除”; releaseBtn.addEventListener(“单击”,删除项); ItemCard.appendChild(releaseBtn); 如果(!列表){ list=event.target.parentElement.lastElementChild; } 列表。附加子项(项目卡); }; 常量clearForm=()=>{ 让item=document.getElementById(“item表单”); item.innerHTML=“”; }; 常量clearCategoryForm=()=>{ 让category=document.getElementById(“category表单”); category.innerHTML=“”; }; 常量deleteItem=()=>{ fetch(ITEMS_URL+`/${event.target.dataset.ItemId}`{ 方法:“删除”, }).then(removietem(event.target.dataset.itemId)); }; const removietem=(id)=>{ 让cardToRemove=document.getElementById(`item-${id}`); cardToRemove.parentElement.removeChild(cardToRemove); }; const displayItemForm=()=>{ 让itemForm=document.getElementById(“项目表单”); 让html=` 标题 项目数量 `; itemForm.innerHTML=html; 文件。查询选择器(“表格”)。添加的列表器(“提交”,createItem); }; const createItem=()=>{ event.preventDefault(); 日志(“添加项…”); 让categoryCardId=event.target.dataset.categoryId; console.log(categoryCardId); 常数项={ 标题:document.getElementById(“标题”).value, 数量:document.getElementById(“数量”).value, 类别识别号:categoryCardId, }; //createItem(); 控制台日志(项目); 获取(项目)\u URL{ 方法:“张贴”, 正文:JSON.stringify(项目), 标题:{ “内容类型”:“应用程序/json”, 接受:“应用程序/json”, }, }) .then((response)=>response.json()) 。然后((数据)=>{ let item=新项(数据); item.renderItem(); clearForm(); }); };

杂货
杂货

代码中有两件事

  • 需要调用createNewCategory
  • addEventListener(“submit”,createCategory)您在问题中错过了此函数,现在添加了一个简单函数
  • 检查下面的代码片段

    const createNewCategory=()=>{
    let form=document.querySelector(“a”);
    表单.addEventListener(“单击”,显示类别表单);
    };
    常量displayCategoryForm=()=>{
    让categoryForm=document.getElementById(“类别表单”);
    让html=`
    名称
    `;
    categoryForm.innerHTML=html;
    文件。查询选择器(“表格”)。添加的文本列表器(“提交”,创建类别);
    };
    createNewCategory()
    const createCategory=()=>alert('i am createCategory function')
    
    
    createNewCategory
    似乎从未在代码中调用过。它在哪里被调用?另外,
    createCategory
    未定义。这是我的代码:window.addEventListener(“加载”(=>{getCategories();createNewCategories();searchForCategories();})@maryjane请检查答案,我希望这会让你更好地理解,我也提到了你错过的东西。您的代码运行时出现了一些错误。从您的问题中创建了一个片段,没有问题:)@DILEEPTHOMAS非常感谢您的回答!实际上,我在页面顶部调用了createNewCategory,如下所示:window.addEventListener(“load”,()=>{getCategories();createNewCategories();searchForCategories();});