在jQuery的新版本中,你最兴奋的是什么?

最新的jQuery版本已经发布了,jQuery v1.4。 你可以在这里阅读。 它可以让你做一些漂亮的东西,如:

$("div.test").bind({ click: function(){ $(this).addClass("active"); }, mouseenter: function(){ $(this).addClass("inside"); }, mouseleave: function(){ $(this).removeClass("inside"); } }); 

你最喜欢这个新版本的什么? 是什么让你走了“最后!”?


增加了一个赏金,获得更多的反馈意见,并接受答案

我认为最好的function是允许setters中的函数:

 jQuery('li.selected').html(function(i, li) { return "<strong>" + li + "</strong>"; }); 

许多需要$ .each的代码现在可以被删除。

相信与否,对我来说“最后”的时刻是delay()

 $("#notice").slideDown('500').delay(4000).slideUp('500'); // = Pure awesome :) 

通过将所有属性作为第二个parameter passing给jQuery() ,能够以更简洁的方式即时创build元素:

 jQuery('<div/>', { id: 'foo', mouseenter: function() { // do stuff }, html: jQuery('<a/>', { href: 'http://google.com', click: function() { // do stuff } }) }); 

所有非属性属性映射到相应的jQuery方法。 所以有了html ,就会调用.html()click将通过.click()绑定一个新的click事件。

我真的没有最喜欢的,这里是一个不知道这是什么的15个新function的概述:

http://net.tutsplus.com/tutorials/javascript-ajax/jquery-1-4-released-the-15-new-features-you-must-know/

我是一个速度怪胎,所以速度的提高总是受到我的欢迎

对我来说是这样的:

“所有活动都可以成为现场活动”

“在live()支持的事件中,我们感到非常自豪,1.4通过.live()中的事件委托引入了跨浏览器对更改,提交,focusin,focusout,mouseenter和mouseleave的支持。

我一直在等待这个变化事件的年龄!

那么性能改进当然是我所欣赏的,但是我想我不能说这是一个“终于”,因为这是一个不断改进的东西:) DOM构build(快速元素构造)语法看起来非常方便, detach方法看起来相当有用:它允许你暂时从DOM中移除一个对象,但是保留所有的处理器,这样在重新插入时它将以同样的方式工作。

我想没有那么多东西,我一直想念,但现在这些新function在那里,有一堆,我急于开始使用:)

焦点和泡沫事件的事件代表团:

我真的很喜欢delay()和detach(),说实话。 性能的改进也是一个巨大的优势,但是delay()可能是其中最令人惊讶的部分。 简单但非常有用。 没有更多的setTimeouts()。

自1.3+以来,它已经非常模块化了。 例如,当你不需要ajax库的时候,最好不用它。 保持文件大小。

叫我疯狂,但只是增加了一些testing给我一个温暖的模糊感觉。 我几乎想要upvote每个答案:)_

我认为unwrap()是简单的,优雅的,你会得到一个innerHTML到最后!

新的解包方法将把一个给定父项的子项取代为父项。 像这样:

 <body> <div> <p>this</p> <p>is</p> <p>fun</p> </div> </body> $('div').unwrap(); <body> <p>this</p> <p>is</p> <p>fun</p> </body> 
 $.proxy() 

为了确保总是意味着这一点,而不是…

从这里例子

 MyModule = function() { this.$div = $('#testdiv'); this.myString = "Hi! I'm an object property!"; this.$div.click($.proxy(this.handleClick, this)); }; MyModule.prototype.handleClick = function() { console.log(this.myString); // Hi! I'm an object property! }; var m = new MyModule(); 

对我来说,现在可以使用live()处理程序编写事件处理程序。 我知道在最后一个版本(1.3.2)中也存在,但没有完全支持。

这使得代码无限简单,特别是如果您有大部分DOM是通过dynamic创build或通过Ajax请求创build的。

live在这里的更多信息: http : //api.jquery.com/live/

live()调用诸如change之类的事件对我来说是一个很大的问题。 现在我一直想要这个。