JS事件和JS对象

 
 
事件:
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
* 2 attachEvent 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 );
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值