一、查找所需的元素的比较方便的语法糖
1.除基本的id,class 和tag的方法外 介绍一种基于元素位置的查找方法
document.elementFromPoint(x,y)获取点位置的元素
2.元素find()及基本定位的时候可以借用某些元素属性值进行精确定位
[attribute$=value],匹配给定的属性是以某些值结尾的元素。
[attribute*=value],匹配给定的属性是以包含某些值的元素。
[attribute^=value],匹配给定的属性是以某些值开始的元素。
举个栗子,$('div').find('input[type = text]')就是查找div的子元素中type类型为text的input元素
上述的几种方法可以应用到Parent()和Children() 及基本的$()元素查找中
3.find(),fileter(),及end()的有趣的事
find()是查找子元素中响应的要求
fileter()则是所需属性中用于过滤的精确选取,如$('div').fileter('.abc')目的是选取div中属性值为abc的元素集合
end()可以阻止进行如$('div').fileter('.abc').end()最后的返回结果就是选取div元素
4.$()[0] == document.elementByXX
二、object数组和array数组中比较有趣的事
1.object数组几种初始化方法可以通过检索得到,最简单的就是{},而array本事就算是一种对象,他的初始化最简单就是[]
array.push()和arry.splice()的方法可以插入元素,而object则可以直接这样object[key]=value 的方法加入键值对
2.删除元素时array仍然用splice() pop()等
w3school中给了很详细的解释。
而object的删除其中某些键值对通过delete 操作实现。
3.数组操作,巧妙运用splice()这个确实有趣,打算日后拓展的时候来写
日后张贴博客链接
三、this的运用,在类函数内部的中使用相当方便,但是类函数中其他函数再使用this方法容易出错
解决办法有两种
1.传参 var _evt = this 类函数中如有调用其他类函数时可用_evt.操作进行,这样不会出错
2.就是把this写全,就是类名代替this
四、绑定解绑的范围要确定
写绑定时可以如下操作$().off().on()
或者$().unbind.bind()
这样比较保险这样写可以有效防止多重绑定
作者曾因绑定多次而没解绑发生过相当诡异的bug
绑定也是一种比较有趣的事,可以自己定义一些有趣的事件
鼠标左键和右键在js基础event中是没有界限的,可以通过event.which 来判定,1是左键,2是中间键或右键,3是右键
可以自己绑定事件实现通用性
关于绑定及事件的内容可看我的博文
《关于监听事件的有意思事》