原生js事件全部带on
dom元素事件:
1.window事件:onload onresize onreload onerror oncontentmenu onscroll
2.鼠标事件: onmouseenter onmouseleave(水平离开)
onmouseout(垂直+水平离开)
onmouseup onmousdown onclick
ondbclick onmousewheel onmouseover onmousemove
3.键盘事件:onkeydown onkeyup onkeypress
4.表单事件:onfocus(获焦) onblur(失焦) onsubmit onreset
1.获取/设置元素属性
- 获取元素属性
<button id="but" onclick="fun1()" onmouseover="fun2()">按钮</button>
console.log(but.attributes);
but.attributes.removeNamedItem("onmouseover");
console.log(but.attributes.getNamedItem("onmouseover"));
- 设置属性
/* 第一种
var args=document.createAttribute("onmousemove");
args.nodeValue="fun2()";
but.attributes.setNamedItem(args);
*/
//第二种
but.setAttribute("onmousemove",'fun2()');
2.dom元素添加事件
函数不传递this 函数内部的this 指window
如果传递this 函数内部的参数 指当前的对象
<button id="but" onclick="fun1()">按钮</button>
function fun1() {
console.log("你点我", this);
}
<button id="but" onclick="fun1(this)">按钮</button>
function fun1(args) {
console.log("你点我", this);
}
- 直接在元素上直接绑定事件
<button id="but" onclick="fun1()" onmouseover="fun2()">按钮</button>
function fun1() {
console.log("你点我", this);
}
function fun2() {
console.log("你悬停我");
}
- 动态绑定事件
btn.onclick = function () {<