JS事件和JS对象

来源:互联网 发布:linux cal windows 编辑:程序博客网 时间:2024/06/10 22:23
事件:
onabort图像的加载被中断。
onblur元素失去焦点。
onchange域的内容被改变。
onclick当用户点击某个对象时调用的事件句柄。
ondblclick当用户双击某个对象时调用的事件句柄。
onerror在加载文档或图像时发生错误。
onfocus元素获得焦点。
需要注意以下三个的先后顺序。
onkeydown某个键盘按键被按下。
onkeypress某个键盘按键被按下并松开。
onkeyup某个键盘按键被松开。
onload一张页面或一幅图像完成加载。
onmousedown鼠标按钮被按下。
onmousemove鼠标被移动。不建议使用,很耗费资源
onmouseout鼠标从某元素移开。
onmouseover鼠标移到某元素之上。
onmouseup鼠标按键被松开。
onreset重置按钮被点击。
onresize窗口或框架被重新调整大小。
onselect文本被选中。
onsubmit确认按钮被点击。
onunload用户退出页面。
还有更多在网上都可以搜索到。
添加事件:
1.可以用点符号法进行添加事件。
/*DOM0:如果给同一个元素添加多个同类型事件,最后添加的事件会覆盖之前的*/
/*DOM0
* 1:内联模型(行内绑定)
* 2:脚本模型(动态绑定)*/
var div = document.getElementById("div");
div.onclick = function () {
console.log(1);
};
div.onclick = function () {
console.log(2);
}
2.DOM2
/*DOM2:可以给同一个元素添加多个同类型事件*/
/*DOM2
* 1:addEventListener W3C
* 2attachEvent IE*/
/*1:addEventListener三个参数
* 参数1:用来指定事件类型 W3C没有on前缀
* 参数2:用来指定事件处理函数
* 参数3:用来指定事件模型(事件冒泡和事件捕获)*/
/*attachEvent:只有两个参数
* 参数1:用来指定事件类型 IE仍然有on前缀
* 参数2:用来指定事件处理函数*/
var div = document.getElementById("div");
if (document.addEventListener){ //W3C
div.addEventListener("click",function () {
alert("W3C")
})
}else { //IE
div.attachEvent("onclick",function () {
alert("IE");
})
}
需要注意的是:如果通过DOM2模型给同一个元素添加多个同类型事件监听
* 在W3C类型的浏览器下,先声明的先触发
* 在IE类型的浏览器下,先声明的后触发
/*参数3:
false: 事件冒泡 事件从子元素流向父元素 默认
true: 事件捕获 事件从父元素流向子元素 */
/*根据不同的浏览器类型,采用不同的方法添加点击事件*/
//根据不同的事件类型,采用不同的方法取消事件冒泡
function stop(e) {
if (e.stopPropagation){ //w3c
e.stopPropagation();
}else{
e.cancelBubble = true;
}
}
清楚监听事件:
if (div.addEventListener){
/*添加事件事件监听时,只有当事件出路函数为外部函数的时候,添加的事件才能被移除*/
div.addEventListener("click",show1);
div.addEventListener("click",show2);
}else{
div.attachEvent("onclick",show1);
div.attachEvent("onclick",show2);
}
/* 如果要移除事件监听,addEventListener() 的执行函数必须使用外部函数*/
function cleanEvent() {
if (document.addEventListener){
div.removeEventListener("click",show1);
div.removeEventListener("click",show2);
}else{
div.detachEvent("onclick",show1);
div.detachEvent("onclick",show2);
}
}
function show1() {
alert(1);
}
function show2() {
alert(2);
}
/*添加事件事件监听时,只有当事件出路函数为外部函数的时候,添加的事件才能被移除
*
* 当以外部函数形式给同一个元素添加多个同类事件的时候,只会保留一个。
* 当以内部函数形式给同一个元素添加多个同类事件的时候,会全部保留。
* */
div.addEventListener("click",function () {
alert(1);
});
div.addEventListener("click",function () {
alert(1);
});
主要是因为添加同类事件时外部函数需要使用一样的函数名。
JS对象
数组:
/*concat():连接两个或更多的数组(或普通数据)
* 会解析新连接的数组元素,然后追加到老数组尾部*/
// var result = arr2.concat(arr3);
// var result = arr2.concat(arr3,arr4);
var result = arr2.concat(arr3,arr4,"ccy",1);
console.log(result);
/*push():在数据的末尾添加一个新的元素,不会生成新的数组,只是在老数组的基础上进行修改
* 如果追加的是数组,push方法不会解析数组元素,而是直接把整个数组追加到老数组尾部*/
var arr5 = ["zhangsan","lisi","wangwu"];
var result = arr5.push("sunliu");
// var result = arr5.push(arr2);
console.log(result);
console.log(arr5);
/*pop():从数组的尾部删除一个元素并返回被删除的元素*/
result = arr5.pop();
console.log(result);
console.log(arr5);
/*unshift():在数组的头部添加一个新的元素,并返回数组的长度
* 如果添加的是数组,unshift方法不会解析数组元素,而是直接把整个数组当成一个元素添加到老数组头部*/
// result = arr5.unshift("ccy");
result = arr5.unshift(["ccy","jereh"]);
console.log(result);
console.log(arr5);
/*shift():从数组的头部删除一个元素并返回被删除的元素*/
result = arr5.shift();
console.log(result);
/*sort:对数组元素进行升序排列,返回排序以后的数组*/
var arr6 = ["tom","tab","dom","horse","item","ele"];
arr6.sort();
console.log(arr6);
/*sort()函数可以接受一个排序函数,自定义的排序函数可以自己定义排序规则。
来打破默认的排序规则*/
var arr7 = [10,1,20,22,34,67,3,8,9,12];
console.log(arr7.sort(sortNum));
/*自定义的排序函数*/
function sortNum(a,b) {
return a - b;
}
/*reverse():对数组的元素进行倒序排列*/
var arr8 = ["zhangsan","lisi","wangwu"];
console.log(arr8.reverse());
/*slice():接收两个参数
* 参数1:开始索引 (包括)
* 参数2:结束索引 (不包括)
* 如果只写一个参数,默认是开始索引,一直截取到数组的最后一个*/
var arr9 = ["zhangsan","lisi","wangwu","sunliu","tianqi"];
console.log(arr9.slice(1));
对于String对象:
/*String对象的方法*/
/*大小写转换*/
var name = "ccy";
var result = name.toUpperCase();
console.log(result.toLowerCase());
/*charAt():返回指定索引处的字符*/
console.log(name.charAt(2));
/*indexOf():返回指定字符的索引*/
console.log(name.indexOf("c",1));
对于Boolean对象:
/*隐式转换*/
/*1:null
* 2:0
* 3:-0
* 4:NaN
* 5:""
* 6:undefined
* 7:false*/
if (!false){
// alert(false);
}
/*显式转换*/
var result = new Boolean(false);
if (!result.valueOf()){
alert(false);
}
原创粉丝点击