动态事件绑定插件livequery, 可以利用它给相应的DOM元素注册事件或者触发回调函数。不仅当选择器匹配的元素会被绑定事件,而且后来通过JavaScript添加的元素都会被绑定事件。当元素不再和选择器匹配时,livequery会自动取消事件注册,使得开发者不再需要关注HTML元素的来源,只需要关注如何编写其绑定的事件即可
通过jQuery选择器选择一个DOM元素,livequery插件会实时地在整个DOM范围将其持久化。这意味着无论元素是先前存在的还是后来动态加载的,事件都会被绑定,就像是CSS给元素添加样式一样。同时,这款插件几乎在没占用什么资源的情况下就做到了这些功能
livequery下载地址: http://plugins.jquery.com/project/liveQuery
使用方法:
1.引入jquery.livequery.js
<script src="scripts/jquery-1.6.4.js" type="text/javascript"></script>
<script src="scripts/jquery.livequery.js" type="text/javascript"></script>
2.通过livequery动态绑定事件
$(document).ready(function(){
$('a').livequery('click', function() {
alert('livequery导致的点击');
return false;
});
$("body").append('<p><a href="#">超链接B</a>');
$("body").append('<p><a href="#">超链接C</a>');
});
livequery插件还可以为匹配的元素触发一个回调函数,当不再匹配这个元素时,触发另外一个回调函数
$('li').livequery(function(){
// 使用hover函数 绑定mouseover和mouseout事件
$(this).hover(function() {
$(this).addClass('hover');
}, function() {
$(this).removeClass('hover');
});
}, function(){
// 解除绑定mouseover和mouseout事件
$(this)
.unbind('mouseover')
.unbind('mouseout');
});
利用livequery插件来注册其他插件
if(jQuery.livequery)
jQuery.livequery.resisterPlugin("method1", "method2", "method3");
与jQuery1.3中新增的 live(type, fn) 方法区别:
1.live也能给当前以及将来会匹配的元素绑定一个事件处理函数(使用委派方式),也能绑定自定义事件。但是目前支持的事件有click/dblclick, mousedown/up/move/over/out, keydown/press/up, 还不支持的事件有 blur/focus, mouseenter/leave, change, submit
2.live 方法不支持livequery提供的“无事件”样式的回调函数,live只能绑定事件处理函数
3.live 方法没有 “setup” 和 “cleanup” 的过程, 因为所有的事件是委派而不是直接绑定在元素上的