code up

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

jQuery 1.7

jQuery 1.7が公開されています。本ブログ内のjQuery 1.7.1についての記事はこちら

1.6の時のような互換性を損なうバージョンアップは今のところなく、パフォーマンス改善、機能の統合、外部ライブラリとの共存の改善、等が主なリリース内容でした。

まず目についたのがtoggleによるアニメーションでstop()が正しく動くようになったようです。

.stop() - jQuery API

Toggling Animations

As of jQuery 1.7, stopping a toggled animation prematurely with .stop() will trigger jQuery's internal effects tracking. In previous versions, calling the .stop() method before a toggled animation was completed would cause the animation to lose track of its state (if jumpToEnd was false). Any subsequent animations would start at a new "half-way" state, sometimes resulting in the element disappearing. To observe the new behavior, see the final example below.

適当訳

トグルによるアニメーション

jQuery 1.7にて、トグルによるアニメーションを.stop()で完了前に止めた場合、jQuery内部のエフェクト追跡を起動させるようになりました。以前のバージョンでは.stop()メソッドをトグルによるアニメーションが完了する前に呼び出すと、(jumpToEndがfalseの場合に)そのアニメーションが状態を見失う結果になっていました。後続のアニメーションが新しい"中間地点"から始まることで、時々要素が消えることもありました。新しい動きを確認するには、下記にある最後の例を見て下さい。

1.6.4まではアニメーションに対して、停止、再生を繰り返すとうまく動きませんでした。

トリッキーな方法でできていたのかもしれませんが、私は停止させることなく放置していました。

ステータスを見失っていたわけですね。1.7からは正しく管理できるようになってるようなので、これからはアニメーションの再開がスムーズにできるようになるんでしょう!

上記URLにあった.stop()のExampleをjQuery 1.6.4で動かしてみたところ、クリック!クリック!した結果、最終的には高さが0(上下のborderだけが残った)のdivになって、それ以上動かなくなりました。

1.7だときれいにアニメーションします!

on/off

イベントのバインディング(*)がon/offで統一され、今後そちらを推奨していくとのことです。

* bind/unbind, delegate/undelegate, live/die

以前のattr/propのような互換性の問題が出ないといいですね。数日使ってますが、大丈夫そうです。

こう書き換えましょう的なもの:

$('a').bind('click', myHandler); $('a').on('click', myHandler); $('form').bind('submit', { val: 42 }, fn); $('form').on('submit', { val: 42 }, fn); $(window).unbind('scroll.myPlugin'); $(window).off('scroll.myPlugin'); $('.comment').delegate('a.add', 'click', addNew); $('.comment').on('click', 'a.add', addNew); $('.dialog').undelegate('a', 'click.myDlg'); $('.dialog').off('click.myDlg', 'a'); $('a').live('click', fn); $(document).on('click', 'a', fn); $('a').die('click'); $(document).off('click', 'a');

AMDサポート

以前のバージョンのjQueryは、モジュール化されたJavaScriptとの相性が以前が悪かったみたいです。

AMD(Asynchronous Module Definition) API互換のライブラリとはうまく共存できるようになったようです。

と書いてても、現時点であまり興味が無い分野なのですが、CommonJSと共に今後広まりそうな技術な予感がします。

jQuery.Deferred

途中経過が確認できるようになったとのこと。

新しく追加になったjQuery.Callbacksにて実装されたようです。

success/failureのchainはいいのですが、jsdeferredのような重たい処理の間に別のイベントを割り込ませられる(DoEventsのような)非同期処理は相変わらずできないんでしょうかね。

バージョンアップする度に、確認してるんですが、結局jsdeferredに戻ってます。

delegateのパフォーマンス改善

そんなに悪いと感じたことはありませんでしたが、これは地味にいいかも。

HTML5のサポート

以前innerShivを使用していた人は、もう使わなくても大丈夫です。ie8以下に対してhtml5shiv(html5.js)はまだ必要のようです。

jQuery.isNumeric()が追加、jQuery.isNaN()が廃止

isNumeric便利だから作ったぉ!

jQuery.isNaNはJavaScript標準のisNaNと意味が違ったから削除したぉ!

とのことです。

jQuery.isNaN()ってそもそも非公式(ドキュメント化されてないAPI)なので使ったことない人がほとんどでしょうね。

関連記事
タグ:jQuery html5 css3
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。