We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.bind()将会给所有匹配的元素都绑定一次事件,当元素很多时性能会变差。 而且后来动态新增的元素不会被绑定。
.bind()
<div id='foo'></div> <script> $('#foo').bind('click',function(){ console.log('clicked!'); }); </script>
.unbind()用来解除事件绑定,如果unbind参数为空,则解绑匹配元素的所有事件处理函数 代码示例:
.unbind()
$('#foo').unbind('click');
.delegate()是另一种绑定事件的方式。它将事件处理函数绑定在指定的根元素上, 由于事件会冒泡,它用来处理指定的子元素上的事件。因为事件处理函数绑定在#root上,新加的子元素事件也会冒泡到#root。因为只绑定一个事件处理函数,绑定速度相当快,性能好于.bind()。 代码示例
.delegate()
#root
<div id="root"> <a>Alice</a> <a>Bob</a> </div> <script> $('#root').delegate('a', 'click', function(){ console.log('clicked'); }); </script>
.live()这个方法提供了一种手段,将委托的事件处理程序附加到一个页面的document元素.由于所有的 .live() 事件被添加到 document 元素上,所以在事件被处理之前,可能会通过最长最慢的那条路径之后才能被触发,所以.delegate的性能会好于.live`。
.live()
.delegate
代码示例:
$("a").live("click", function() { return false; });
on()作为jQuery事件的提供者。其他的事件绑定方法都是通过.on()来实现的,既然.on()是最通用的jQuery事件机制,那么上述的所有例子都可以用.on()来实现
on()
.on()
// bind $( "#foo" ).bind( "click", function( e ) {} ); $( "#foo" ).on( "click", function( e ) {} ); // delegate $( "#root" ).delegate( "a", "click", function( e ) {} ); $( "#root" ).on( "click", "a", function( e ) {} );
.live()方法,它与delegate是类似的, 不过它强制指定了root是document(即this.context),因而性能略差。 自jQuery1.7起已经不推荐使用了。
delegate
off()移除用.on()绑定的事件处理程序。它也与.on()相似是jQuery事件的提供者,其他是事件解除绑定方法都可以通过.off()来实现
off()
.off()
//unbind,bind的对应移除方法 $('#container a').unbind('click'); $('#container a').unbind();//解除匹配元素的所有事件 //off $('#container a').off('click'); $('#container a').off();
//die ,live的对应移除方法 $('#container a').die('click'); //off $('#container').off('click', 'a');
//undelegate,delegate的对应移除方法 $('#container a').undelegate('a', 'click'); //off $('#container a').off('click', 'a');
The text was updated successfully, but these errors were encountered:
No branches or pull requests
.bind()
将会给所有匹配的元素都绑定一次事件,当元素很多时性能会变差。 而且后来动态新增的元素不会被绑定。.unbind()
用来解除事件绑定,如果unbind参数为空,则解绑匹配元素的所有事件处理函数代码示例:
.delegate()
是另一种绑定事件的方式。它将事件处理函数绑定在指定的根元素上, 由于事件会冒泡,它用来处理指定的子元素上的事件。因为事件处理函数绑定在#root
上,新加的子元素事件也会冒泡到#root
。因为只绑定一个事件处理函数,绑定速度相当快,性能好于.bind()
。代码示例
.live()
这个方法提供了一种手段,将委托的事件处理程序附加到一个页面的document元素.由于所有的 .live() 事件被添加到 document 元素上,所以在事件被处理之前,可能会通过最长最慢的那条路径之后才能被触发,所以.delegate
的性能会好于.live`。代码示例:
on()
作为jQuery事件的提供者。其他的事件绑定方法都是通过.on()来实现的,既然.on()
是最通用的jQuery事件机制,那么上述的所有例子都可以用.on()
来实现off()
移除用.on()
绑定的事件处理程序。它也与.on()
相似是jQuery事件的提供者,其他是事件解除绑定方法都可以通过.off()
来实现综上所述推荐使用
.on()
和off()
这一对绑定和解除绑定方法The text was updated successfully, but these errors were encountered: