# homework-fe-02-03 **Repository Path**: sfljskeprim_admin/homework-fe-02-03 ## Basic Information - **Project Name**: homework-fe-02-03 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-25 - **Last Updated**: 2021-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1. 简述绑定事件(注册事件)三要素。 > 事件源:绑定事件的节点 > > 事件处理函数:点击事件触发时,执行的代码 > > 事件类型:点击、鼠标移入移出,鼠标移动,滚动等。 2. 简述innerHTML和innerText的区别。 > innerHTML在获取标签内部内容时,如果包含标签、获取的内容会包含标签、包括空白换行等。 > > innerHTML在设置标签内容时,内部的标签结构可以使用。 > > innerText在获取标签内容时,会过滤标签,获取的内容会去掉换行和缩进等空白。 > > innerText在设置标签内容时,即使纯字符串设置。 3. 简述排他思想制作的思路。 > 排他思想就是先将所有的设置为false,然后根据条件设置为true 4. 列举常见的鼠标事件。 > onmousedown 鼠标按下触发 > > onmouseup 鼠标放开触发 > > onmousemove 鼠标在元素上移动 > > onmouseover 鼠标移动到元素上 > > onmouseout 鼠标移出元素边界 5. 设置下拉框中的默认随机选中项,自己书写结构和js。 ```html Title ``` 6. 编写一段程序,实现文本框获取和失去焦点效果。要求:1、获得焦点时,如果内部内容为提示语 请输入搜索关键字 ,清空内容并且设置文字颜色为黑色;2、失去焦点时,如果内容为空,恢复默认提示语,并且设置文字颜色为灰色 ```html Title ``` 7. `
`,将class的属性值中的hide更换为show,其他保持不变,请写出适合的方法。 ```javascript // er.className = "erweima show"; er.className = er.className.replace("hide", "show");//当class样式非常多的时候 会非常麻烦使用String的一个方法简化 ``` 8. 有一组文本框,要求让每一个文本框在自己输入的时候,背景显示灰色,其他文本框显示白色。 ```html Title





``` 9. 在box元素中动态创建无序列表,自定义列表项内容。 ```html Title

动态创建列表

``` 10. 利用事件委托的方法,给一个无序列表的列表项添加点击更改背景色事件。简单说明思路。 > 将一些子级的公共类型的事件委托给他们的父级添加,在父级内部向办法找到真正触发事件的最底层事件源,e.target是真正触发的事件 ```html Title ``` 11. 请自定义一个注册事件的兼容函数,要求兼容三种注册事件方法。 ```javascript /** * 兼容绑定事件 * @param ele 事件源 * @param type 事件类型 * @param fn 事件函数 */ function addEvent(ele, type, fn) { if (type.startsWith("on")) {//以on开头的事件 ele[type] = fn; console.log(ele); } else { if (ele.addEventListener) { ele.addEventListener(type, fn); } else if (ele.attachEvent) { ele.attachEvent("on" + type, fn); } else { throw Error("this is ele not support event listener"); } } } /** * 兼容解除事件 * @param ele 事件源 * @param type 事件类型 * @param fn 事件函数 */ function removeEvent(ele, type, fn) { if (type.startsWith("on")) { ele[type] = null; } else { if (ele.removeEventListener) { ele.removeEventListener(type, fn); } else if (ele.detachEvent) { ele.detachEvent("on" + type, fn); } else { throw Error("this is ele not support event listener"); } } } ``` 12. 将定时器的开始和停止过程书写在不同的事件函数内部,容易出现用户多次点击出现加速且运动不能停止的情况,请给出解决代码。 ```html Title
``` 13. 给 part1-模块2-任务1 的轮播图静态页面添加JS事件,让其成功滚动