一. 事宜先容
事宜一样平常是用于浏览器和用户操作进行交互。最早是 IE 和 Netscape Navigator 中涌现 ,作为分担做事器端运算负载的一种手段。 直到险些所有的浏览器都支持事宜处理。 而 DOM2级规范开始考试测验以一种复合逻辑的办法标准化 DOM 事宜。JavaScript 有三种事宜模型:内联模型、脚本模型和 DOM2 模型。
二.内联模型这种模型是最传统接单的一种处理事宜的方法。 在内联模型中, 事宜处理函数是 HTML标签的一个属性,用于处理指定事宜。虽然内联在早期利用较多,但它是和 HTML 混写的 ,并没有与 HTML 分离。
//在 HTML 中把事宜处理函数作为属性实行 JS 代码
<input type=\"大众button\"大众 value=\"大众按钮\公众 onclick=\"大众alert('Lee');\"大众 /> //把稳单双引号
//在 HTML 中把事宜处理函数作为属性实行 JS 函数
<input type=\"大众button\公众 value=\"大众按钮\"大众 onclick=\"大众box();\公众 /> //实行 JS 的函数
函数不得放到 window.onload 里面,这样就看不见了。
三. 脚本模型由于内联模型违反了 HTML 与 JavaScript 代码层次分离的原则。为理解决这个问题, 我
们可以在 JavaScript 中处理事宜。这种处理办法便是脚本模型。
var input = document.getElementsByTagName('input')[0]; //得到 input 工具
input.onclick = function () { //匿名函数实行
alert('Lee');
};
通过匿名函数,可以直打仗发对应的代码。也可以通过指定的函数名赋值的办法来实行函数(赋值的函数名不要随着括号)。
input.onclick = box; //把函数名赋值给事宜处理函数
四. 事宜处理函数JavaScript 可以处理的事宜类型为:鼠标事宜、键盘事宜、HTML 事宜。
JavaScript 事宜处理函数及其利用列表
所有的事宜处理函数都会都有两个部分组成,on + 事宜名称,例如 click 事宜的事宜处理函数便是:onclick。在这里,我们紧张评论辩论脚本模型的办法来构建事宜,违反分离原则的内联模式,我们忽略掉。对付每一个事宜,它都有自己的触发范围和办法,如果超出了触发范围和办法,事宜处理将失落效。
1.鼠标事宜,页面所有元素都可触发
click:当用户单击鼠标按钮或按下回车键时触发。
input.onclick = function () {
alert('Lee');
};
dblclick:当用户双击主鼠标按钮时触发。
input.ondblclick = function () {
alert('Lee');
};
mousedown:当用户按下了鼠标还未弹起时触发。
input.onmousedown = function () {
alert('Lee');
};
mouseup:当用户开释鼠标按钮时触发。
input.onmouseup = function () {
alert('Lee');
};
mouseover:当鼠标移到某个元素上方时触发。
input.onmouseover = function () {
alert('Lee');
};
mouseout:当鼠标移出某个元素上方时触发。
input.onmouseout = function () {
alert('Lee');
};
mousemove:当鼠标指针在元素上移动时触发。
input.onmousemove = function () {
alert('Lee');
};
2.键盘事宜
keydown:当用户按下键盘上任意键触发,如果按住不放,会重复触发。
onkeydown = function () {
alert('Lee');
};
keypress:当用户按下键盘上的字符键触发,如果按住不放,会重复触发。
onkeypress = function () {
alert('Lee');
};
keyup:当用户开释键盘上的键触发。
onkeyup = function () {
alert('Lee');
};
3.HTML 事宜
load:当页面完备加载后在 window 上面触发,或当框架集加载完毕后在框架集上触发。
window.onload = function () {
alert('Lee');
};
unload:当页面完备卸载后在 window 上面触发,或当框架集卸载后在框架集上触发。
window.onunload = function () {
alert('Lee');
};
select:当用户选择文本框(input 或 textarea)中的一个或多个字符触发。
input.onselect = function () {
alert('Lee');
};
change:当文本框(input 或 textarea)内容改变且失落去焦点后触发。
input.onchange = function () {
alert('Lee');
};
focus:当页面或者元素得到焦点时在 window 及干系元素上面触发。
input.onfocus = function () {
alert('Lee');
};
blur:当页面或元素失落去焦点时在 window 及干系元素上触发。
input.onblur = function () {
alert('Lee');
};
submit:当用户点击提交按钮在<form>元素上触发。
form.onsubmit = function () {
alert('Lee');
};
reset:当用户点击重置按钮在<form>元素上触发。
form.onreset= function () {
alert('Lee');
};
resize:当窗口或框架的大小变革时在 window 或框架上触发。
window.onresize = function () {
alert('Lee');
};
scroll:当用户滚动带滚动条的元素时触发。
window.onscroll = function () {
alert('Lee');
};