HTML5默认气泡修改演示
这一节说的不是很清楚,麻烦老师详细讲解。
1.
form.addEventListener("invalid", function(event) {
event.preventDefault();
}, true);
阻止原有气泡 preventDefault() 方法阻止元素发生默认的行为。event.preventDefault()中的event能否忽略不写?
function(event)里的event可以不写吗?event代表什么?event可以用e代替或者忽略不写吗?
2.addEventListener默认是false,改为true有什么意义?修改为true和false有什么变化?查看资料说
true - 事件句柄在捕获阶段执行,false- false- 默认。事件句柄在冒泡阶段执行。在这里代码有什么意义?
3.errorMessage = form.querySelectorAll(".error-message") 这里的error-message的类从哪里来的?没有发现class=error-message
4.for (var i = 0; i < errorMessage.length; i++) {
errorMessage[i].parentNode.removeChild(errorMessage[i]);
errorMessage[i].parentNode是errorMessage[i]的父节点的意思吗?
errorMessage[i].parentNode.removeChild(errorMessage[i]); 移除errorMessage[i]的父节点的子元素中的所有errorMessage[i]的意思吗?
5. parent = inValidityField[i].parentNode;是 定义parent为inValidityField[i]的父元素吗?
parent.insertAdjacentHTML("beforeend", "<div class='error-message'>" + inValidityField[i].validationMessage + "</div>") 意思是在parent最后一个子元素后面插入 class为error-message的div元素。div元素中间inValidityField[i].validationMessage 是什么意思?
6.inValidityField[0].focus();是什么意思?
正在回答 回答被采纳积分+1
问题1:
(1)阻止原有气泡 preventDefault() 方法阻止元素发生默认的行为。event.preventDefault()中的event能否忽略不写?
因为监听的是event事件,所以event.preventDefault()中的event不能忽略
(2)function(event)里的event可以不写吗?event代表什么?event可以用e代替或者忽略不写吗?
因为监听的是event事件,event.preventDefault()中的event不能忽略,因此function(event)中的event不能忽略
问题2:
(1)addEventListener默认是false,改为true有什么意义?修改为true和false有什么变化?
先来看一个例子:
如果给box加click事件,如果直接单击box没有什么问题,但是如果单击的是child元素,那么它是怎么样执行的?(执行顺序)
也就是说,默认情况事件是按照事件冒泡的执行顺序进行的
如果第三个参数写的是true,则按照事件捕获的执行顺序进行的:
事件冒泡执行过程:从最具体的的元素(单击的那个元素)开始向上开始冒泡,拿上面的案例讲,它的顺序是:child->box
事件捕获执行过程:从最不具体的元素(最外面的那个盒子)开始向里面冒泡,拿上面的案例讲,它的顺序是:box->child
(2)在这里代码有什么意义?
这里的addEventListener() 方法就是用于向指定元素添加事件句柄
问题3:
(1)这里的error-message的类从哪里来的?没有发现class=error-message
并且在后面的代码中会在js中追加class为error-message的元素
问题4:
(1)errorMessage[i].parentNode是errorMessage[i]的父节点的意思吗?
首先要了解:parentNode 属性以 Node 对象的形式返回指定节点的父节点,因此这里可以理解为errorMessage[i].parentNode是errorMessage[i]的父节点
(2)errorMessage[i].parentNode.removeChild(errorMessage[i]); 移除errorMessage[i]的父节点的子元素中的所有errorMessage[i]的意思吗?
可以这么理解
问题5:
(1)parent = inValidityField[i].parentNode;是 定义parent为inValidityField[i]的父元素吗?
parent = inValidityField[i].parentNode;意思是选中 inValidityField[i]的父元素,理解成:定义parent为inValidityField[i]的父元素也是正确的。
(2)div元素中间inValidityField[i].validationMessage 是什么意思?
inValidityField[i].validationMessage获取错误信息,将这个错误信息挂载在<div class='error-message'></div>这个元素上
问题6:
(1)inValidityField[0].focus();是什么意思?
inValidityField是获取错误信息,这里的意思是判断是否有错误信息,如果有错误信息,给一个focus,即获取焦点的时候,改变错误信息
希望可以帮到你!
- 参与学习 人
- 提交作业 2198 份
- 解答问题 5012 个
如果你有web端基础,既想进阶,又想进军移动端开发,那就来吧,我们专题为你带来的课程有HTML5、CSS3、移动基础、响应式、bootstrap、less等,让你在前端道路上畅通无阻!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星