# 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
`,将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
- 12323
- 12323
- 12323
- 12323
- 12323
```
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事件,让其成功滚动