最新的jQuery版本已经发布,jQuery v1.4。你可以阅读所有相关信息here。它允许你做一些非常整洁的东西,如:
$("div.test").bind({
click: function(){
$(this).addClass("active");
},
mouseenter: function(){
$(this).addClass("inside");
},
mouseleave: function(){
$(this).removeClass("inside");
}
});
您对这个新版本最喜欢什么?是什么让你“最终!”?
添加了赏金以获得更多反馈并接受答案
答案 0 :(得分:58)
信不信由你,对我来说“最后”的时刻是delay()
的加法:
$("#notice").slideDown('500').delay(4000).slideUp('500'); // = Pure awesome :)
答案 1 :(得分:44)
通过将所有属性作为第二个参数传递给jQuery()
,能够以更简洁的方式动态创建元素:
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()
绑定新的{{1}}事件......
答案 2 :(得分:18)
我真的不喜欢,这里有15个新功能的概述,对于那些不知道这是什么的人来说:
答案 3 :(得分:18)
我认为最好的功能是允许在setter中使用函数:
jQuery('li.selected').html(function(i, li) {
return "<strong>" + li + "</strong>";
});
现在可以删除许多需要$ .each的代码。
答案 4 :(得分:17)
我是速度狂热者,所以我总是欢迎任何速度提升
答案 5 :(得分:12)
对我来说就是这样:
“所有活动都可以是直播活动”
“我们非常自豪能算一些 其中的附加事件 live()支持。 1.4介绍 跨浏览器支持变更, 提交,焦点,焦点,mouseenter, 和事件中的mouseleave 代理在.live()。“
我已经在变化事件上等了很久!
答案 6 :(得分:6)
那么性能改进当然是我欣赏的东西,但我想我不能说它是“终于”,因为它是一个不断改进的东西:) DOM构建(快速元素构造)语法看起来非常方便,detach
方法看起来也很有用:它允许你暂时从DOM中删除一个对象,但是保留所有处理程序,这样当重新插入时它将以相同的方式工作。 / p>
我想没有那么多我一直缺少的东西,但是现在这些新功能已经存在,有一堆我急于开始使用:)
答案 7 :(得分:6)
答案 8 :(得分:4)
说实话,我真的很喜欢延迟()和分离()。性能改进也是一个巨大的优势,但延迟()可能是它最令人惊讶的部分。简单但超有用。不再有setTimeouts()。
答案 9 :(得分:3)
自1.3+以来,它已经非常模块化。例如,当你不需要ajax库时,没有它就可以构建它。保持文件大小不变。
答案 10 :(得分:3)
叫我疯了,但只是增加了一些测试给我一种温暖的模糊感觉。我几乎想要回答每一个答案:)_
答案 11 :(得分:3)
我认为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>
答案 12 :(得分:3)
$.proxy()
要确保此始终表示此而不是 ......
来自here
的示例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();
答案 13 :(得分:2)
对我来说,现在能够使用live()
处理程序编写事件处理程序。我知道live
也出现在最后一个版本(1.3.2)中,但它并没有完全支持。
这使得代码无限简单,特别是如果您有大部分DOM是动态创建或通过Ajax请求创建的。
有关此live
的更多信息:http://api.jquery.com/live/
答案 14 :(得分:2)
live()调用事件(如变更)对我来说是一个很大的问题。我一直想要这个。