(jQuery详细教程一个人整理)

 jQuery详细教程一(个人整理)

,,


2。将$符的所有权剔除

jQuery.noConflict();

3.bind(),live(),delegate(),on()的区别

1) bind()

.bind()注册的事件直接指向相对应的DOM元素

优点:

跨浏览器

非常方便和快捷地绑定事件

简单的实现方法(.click() .hover() ,etc…)让它用起来很方便

对于简单的ID选择器来说,使用.bind()不仅方便,而且当触发这个事件的时候能够即时响应。

缺点:

这个方法会附加相同的处理程序到每一个匹配到的元素上

对于动态添加的属于匹配到的元素,不会被触发事件的

性能问题,对于处理大量的匹配元素的时候

如果在页面加载前要处理添加事件的话,会影响加载效率的

2) live()

.live()方法使用的是事件委托的概念来执行所谓的“神奇方法”。

优点:

相对于.bind()的循环注册很多次事件处理程序来说,.live()只注册一次事件处理程序

从.bind()更新到.live()的方法对程序更改很少,只需要替换“bind”为”live”

对于动态添加的属于匹配到的元素,也能够“神奇”的执行处理程序

在document元素没有全部加载完之前都能够几乎不花时间地绑定并触发事件

缺点:

此方法在jQuery1.7的时候已经废除,你应该逐步从你的代码中替换掉该方法

链接不能够正常的支持这个方法

这个方法被抛弃是因为它只能够绑定事件处理程序到document上

event.stopPropagation()不再有效了,因为事件已经委托到了document上了

由于事件都是委托到了document上的,所以如果DOM太深的话,会影响到性能的

3) delegate()

.delegate()方法的行为有点类似.live()。但是不是把选择器和事件的信息附加到了document上,而是可以自行选择它要附加的DOM元素,这个技术可以让事件的委托正常工作优点

优点:

可以自由选择附加的选择器和事件信息的位置

链接也可以有效的支持了

jQuery仍然需要循环访问选择器和事件数据来确定匹配,但是因为能够选择这些信息附加的位置,所以通过匹配的量小很多了

由于这种技术使用了事件委托,所以它能很好的动态处理添加到DOM元素

如果你委托事件到了document上,你也可以在document全部准备完之前绑定和调用

缺点:

方法从.bind()更改到.delegate()比较麻烦

如果把选择器和事件数据附加到了document上,仍然需要很多的匹配信息,但是相对于.live()的存储量要小很多了

4)>

优点:

为各种事件绑定方法带来了统一性

简化了jQuery代码库,并删除一个界别的重定向,因为通过调用这个方法实现了 .bind() .live() 和 .delegate()

仍然提供了好用的.delegate()方法,但是也仍然对.bind()方法提供了支持

缺点:

因为调用这个方法的各个形式,会带来一些混乱

总结

使用.bind()方法是很浪费资源的,因为它要匹配选择器中的每一项并且挨个设置相同的事件处理程序

建议停止使用.live()方法,因为它已经被弃用了,由于他有很多的问题

.delegate()方法“很划算”用来处理性能和响应动态添加元素的时候

新的.on()方法主要是可以实现.bind() .live() 甚至 .delegate()的功能

建议使用.on()方法,如果你的项目使用了1.7+的jQuery的话

4.事件对象有很多可用的属性

 jQuery详细教程一(个人整理)


6。模拟事件

方法一,美元(.box) .click(函数(){console.log (111)}) .trigger(“点击”);使用触发器()可以在打开页面的时候就模拟点击事件

方法二就是美元(.box) .click(函数(){console.log (111)}) .click();直接使用单击()模拟点击事件,当然不局限点击事件,金桥提供了基本上所有事件的模拟事件:

模糊focusin mousedown调整改变focusout mousenter滚动点击keydown mouseleave选择双击鼠标键盘按键mousemove提交错误keyup mouseout卸载集中载荷mouseover

.trigger()和.triggerHandler()的区别

1 . . triggerHandler()方法并不会触发事件的默认行为,而.trigger()会

$(“形式”).trigger(“提交”);//模拟用户执行提交,并跳转到执行页面

(jQuery详细教程一个人整理)