jQuery 1.11 と 2.1 の rc1 の変更箇所のメモ

1週間ほど前 jQuery 1.11 と 2.1 のRC版1が発表 されましたのでベータ版3との違いをメモしておきます。

API は 1.10 や 2.0 から変更してません。

npm に登録されている ので、 node 等で jQuery を利用したい場合は npm install jquery@2.1.0-rc1などで インストールできます。

ただし CommonJS 環境下(module や module.exports が存在する) では、グローバルに document オブジェクトが存在していても、 require("jquery")を実行しただけでは jQuery 本体がグローバルに自動的に expose されないので、例えば window.jQuery = window.$ = require("jquery") と手動で expose する必要があります。 グローバルに document オブジェクトが存在していない場合は jQuery 本体を作成するファクトリ関数が返ります。 document オブジェクトを持つ window オブジェクトを ファクトリ関数に渡すと jQuery 本体を取得できます。 (この場合は window オブジェクトに jQuery 本体が自動でexpose されます)。

QUnit.reset()が deprecated になり削除予定なので テストでQUnit.reset()の使用箇所を他の表現に 置き換えたそうです。

古い IE の XHR は RFC2616 に無いメソッド(PATCH とか、 あと trace とconnect も)サポートしてないそうで、 それらを行う場合は ActiveXObject を使用するようにしたようです。

jQuery 1.11 と 2.1 のベータ版 3 の変更箇所のメモ

1週間ほど前 jQuery 1.11 と 2.1 のベータ版3が発表 されましたのでメモしておきます。まだベータ版です。

API は 1.10 や 2.0 から変更してません。 ベータ2に引き続き AMD 対応を進めています。

ベータ2からさらに IE 関連のバグが修正されています。 sizzle も新しくなりました。 npm での使用に改良を加えています。

ベータ2に引き続き npm に登録されるので、 node 等で jQuery を利用したい場合は npm install jquery@2.1.0-beta3で インストールできます。

ただし、ベータ3ではまだ適用されていませんが、 将来の npm 版の jQuery では、 require("jquery")したときに jQuery がグローバル(window オブジェクト)に自動的に expose されなくなるそうなので、例えば window.jQuery = window.$ = require("jquery") と手動で expose する必要があります。

カスタムビルドでモジュール exports/global が追加されました。 また、AMD で使用する際の jQuery のモジュール名を 設定することができるようになりました (デフォルトは"jquery")。 使用する機会はほぼ無いと感じます。 (例:grunt custom --amd="custom-name")

package.json に main プロパティを設定して npm 版の jQuery を require('jquery')で使用できるようになったようです。 (これまでは require('jquery/dist/jquery')等とする必要が あったらしい。)

IE でのローカルファイルへのアクセスに関しては 2.x 系ではなく 1.x 系を利用した方が良さそうです ( 参考 )

あと THE NIGHT BEFORE CHRISTMAS のパロディが書いてありました。 英語ネイティブな人ならうまいのか寒いのか分かるのでしょうが、 コメントを見る限り好評な模様です。

animationPrefilter を作成してアニメーションをカスタマイズ

animationPrefilter とは jQuery.Animation()の中で実行される関数で、 jQuery 1.8 から導入されました。 指定したプロパティの正規化後、tweener の実行前に呼び出されます。 おそらく tweener 実行前になんらかの処理を加えたい場合に 利用するのだと思いますが、潜在的にはその後の tween オブジェクトの作成とjQuery.timersへの 関数の登録なども肩代わりすることが可能です(その場合 それらの処理を自力で書く必要がある)。 デフォルトの animationPrefilter に加えて 独自の animationPrefilter を登録して実行させることで アニメーションをカスタマイズすることができます。

主に jQuery 2.0.3 を使って調べたので、他のバージョンでは 当てはまらないことがあるかもしれませんのでご注意下さい。 この機能は現時点で公式にはドキュメント化されていませんので、 将来告知無しで変更される恐れがあります。

jQuery 1.11 と 2.1 のベータ版1の変更箇所のメモ

先月 jQuery 1.11 と 2.1 のベータ版1が発表 されましたのでメモしておきます。ベータ版です。

API 自体は前のバージョンと変更されていません。 AMD 対応強化、バグ修正と性能改善がなされているそうです。 利用者にとってはあまり変更されてないように見えますが、 内部的にはかなり変わっています。