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

时间:2010-01-15 08:50:15

标签: javascript jquery

最新的jQuery版本已经发布,jQuery v1.4。你可以阅读所有相关信息here。它允许你做一些非常整洁的东西,如:

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

您对这个新版本最喜欢什么?是什么让你“最终!”?


添加了赏金以获得更多反馈并接受答案

15 个答案:

答案 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()会调用clickclick会通过.click()绑定新的{{1}}事件......

答案 2 :(得分:18)

我真的不喜欢,这里有15个新功能的概述,对于那些不知道这是什么的人来说:

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

答案 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()调用事件(如变更)对我来说是一个很大的问题。我一直想要这个。