芝麻开门
发布时间 2023-06-02 17:33:12作者: GTK
习题链接
芝麻开门
课程列表
现在我们有一扇门,这个门叫芝麻开门
我们要在输入框中输入芝麻开门,让门打开
这就是我们的主要任务
关键点
- Promise用法
- 在promise对象中有两个方法resolve,reject方法
- resolve对应 promise 的状态是完成 对应的方法是then方法
- reject 对应 promise 的状态是拒绝 对应的方法是catch方法
- addEventListener 监听事件
- 主要两个参数,还有一个可选参数(可选就是可要可不要咯)
- (必要)第一个参数是事件类型一般有click,input,change等
- (必要)第二个参数是回调函数,当触发了监听事件,就会执行回调函数
- (可选,本次题目可无需理会,只作为扩展了解){ once: true, capture: true } 这个one指的执行一次,capture是捕获还是冒泡,默认是在冒泡阶段执行函数
- 读题很重要
- 直接观看题目中的目标部分会告诉你具体要做什么事情
代码实现 && 完整的代码
- 完成第一件事情,点击“点击弹出对话框,输入咒语”弹出对话框
const div = document.createElement("div");
// TODO:待补充代码
div.innerHTML = template; // template题目提供的
document.body.appendChild(div);
- 返回一个promise对象
const div = document.createElement("div");
// TODO:待补充代码
div.innerHTML = template; // template题目提供的
document.body.appendChild(div);
return new Promise((resolve, reject) => {
let btnCancel = document.getElementById("cancel"); // 取消按钮
let btnConfirm = document.getElementById("confirm"); // 确定按钮
let input = document.getElementsByTagName("input")[0]; // 输入框
btnCancel.addEventListener('click',function () {
document.getElementsByClassName('modal')[0].remove(); // 移除提示框
})
btnConfirm.addEventListener('click',function () {
console.log(input.value); // 打印输入的值
document.getElementsByClassName('modal')[0].remove(); // 移除提示框
})
});
- 根据题目要求,点击取消返回false,确定就返回对话框的值 && 完整code
const div = document.createElement("div");
// TODO:待补充代码
div.innerHTML = template; // template题目提供的
document.body.appendChild(div);
return new Promise((resolve, reject) => {
let btnCancel = document.getElementById("cancel"); // 取消按钮
let btnConfirm = document.getElementById("confirm"); // 确定按钮
let input = document.getElementsByTagName("input")[0]; // 输入框
btnCancel.addEventListener('click',function () {
resolve(false); // 返回false
document.getElementsByClassName('modal')[0].remove(); // 移除提示框
})
btnConfirm.addEventListener('click',function () {
resolve(input.value); // 打印输入的值
document.getElementsByClassName('modal')[0].remove(); // 移除提示框
})
});