5

我想尝试一个新的 JavaScript 库。使用(并且喜欢)j Query 1.3 的“实时”事件后,我更喜欢下一个库,我尝试将事件委托内置到事件系统中。Wikipedia 的 JS 库比较在这里很重要。

看起来MooTools 正在 2.0 中获得它。其他人呢?

我正在制作这个社区维基。请帮我填写清单。

原型:没有

jQuery:从 1.3 开始

MooTools:从 2.0 开始

ExtJS:是的

4

5 回答 5

2

事件委托比您想象的要容易。

如果我找到一个没有自动事件委托的库,我只需向它添加一个层。

于 2009-06-20T16:08:53.713 回答
2

我建议调查一下Prototype。它在 SO 上与 jQuery 一样频繁地列出,我将它用作我所有项目的 JS 库。

我不相信它内置了委托,但它是一个功能齐全的库,具有根据需要添加委托的所有必要功能。

于 2009-06-26T13:18:48.023 回答
1

如果您喜欢使用 Jquery,但想尝试不同的东西,我会使用 mootools,指向 Aarons 事件委托插件的链接以及他关于如何使用原始插件的教程应该可以满足您的所有需求。有很多关于在一天结束时哪个更好的讨论,这正是您喜欢的。

Mootools 非常棒,并且有一些很好的插件,你还应该看看 David Walsh,他做了很多 mootools 开发和一些 Jquery。他发布了一些有趣的东西。 http://davidwalsh.name

于 2009-06-26T21:36:57.103 回答
1

事件委托只是将事件处理程序挂在 DOM 树的更上方。所有框架都可以/应该能够做到这一点。处理程序应该能够拾取任何冒泡的事件。该事件包含触发它的元素,并且处理程序可以从中执行任何操作。

Prototype 没有像 jQuery 那样工作的库原生的任何事件委托糖$.fn.live,但是构建一个捕获事件并处理其目标元素的函数相当简单。

document.observe('click',function(event){alert(event.element().inspect())})

您可以使用它轻松地克隆 jQuery 的 live 版本(我并不是说它会表现良好或其他任何东西)。

live = function(selector,callback){
  document.observe("click",function(e){
    var element = e.element()
    if (!element.match(selector))
      element = element.ancestors().find(function(elem){return elem.match(selector)});
    else
      element = null
    if (element)
      callback.apply(element)
  })
}

你可以这样称呼它:

live("div",function(){this.setStyle({color:'blue'})})

我想我要说的是事件委托已经内置在 javascript 中。图书馆只是添加糖。

于 2009-06-26T23:08:49.040 回答
1

我一直相信Ext Js 。

于 2009-06-28T11:31:37.197 回答