jQuery插件 -- 动态事件绑定插件jquery.livequery.js

来源:互联网 发布:软件企业认定 招标 编辑:程序博客网 时间:2024/04/30 02:53

动态事件绑定插件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, submit2.live 方法不支持livequery提供的“无事件”样式的回调函数,live只能绑定事件处理函数3.live 方法没有 “setup” 和 “cleanup” 的过程, 因为所有的事件是委派而不是直接绑定在元素上的