高级 jQuery:让好的应用程序变成强大的应用程序
2010-01-14 00:00:00 来源:WEB开发网
清单 5. 向新元素添加事件的替代办法
// first technique to deal with "hot" page elements, added during the page's
// lifetime
$("#mailtable tr #"+message.id).addClass("messageRow")
.dblclick(function() {
if ($(this).hasClass("mail_unread"))
{
$(this).removeClass("mail_unread");
}
// second technique to deal with "hot" page elements
$("#mailtable tr #"+message.id).addClass("messageRow")
.bind("dblclick", (function() {
if ($(this).hasClass("mail_unread"))
{
$(this).removeClass("mail_unread");
}
这两种方法都不是很好。您可能正在重复编写代码,或者被迫查找可能添加新页面元素的点,然后在这些点上处理 “热元素” 问题。这不是良好的编程方式。但是,jQuery 可能大大简化这一切,它能够帮助我们完成很多事情。
幸运的是,有一个插件好像能够解决该问题。这个插件称为 LiveQuery 插件,它允许您将特定页面元素绑定到事件,但仅能以 “活动” 的方式进行,因此所有页面元素(包括创建页面时自带的元素和在页面的生命周期中创建的元素)都可能触发事件。对 UI 开发人员而言,这是一个非常智能、重要的插件,因为使得处理动态页面就像处理静态页面一样简单。对于 Web 应用程序开发人员而言,它就是真正不可或缺的插件。
jQuery 核心团队意识到该插件的重要性,从而将其包含到 1.3 发布版中。这个 “活动” 特性现在是核心 jQuery 的一部分,因此任何开发人员都可以利用它。这个特性完整地包含在 1.3 核心代码中,除了一小部分事件之外。我敢打赌,这些未被包含的事件将出现在 jQuery 的下一个发布版之中。我们看看如何利用它改变代码。
更多精彩
赞助商链接