当前位置: 首页 > 工具软件 > Live Query > 使用案例 >

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

叶明辉
2023-12-01

动态事件绑定插件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” 的过程, 因为所有的事件是委派而不是直接绑定在元素上的 


 类似资料: