(2012年8月9日に開発者のWebサイトに投稿されました)8月は、jQuery 1.8ライブラリがリリースされたため、少し暑くなった! jQuery WebサイトのCDNからコードを取得できます。
code.jquery.com/jquery-1.8.0.min.js (縮小および圧縮されたコード-サイトの作業バージョン用)
code.jquery.com/jquery-1.8.0.js (デバッグ用の非圧縮ライブラリ)
通常どおり、GoogleとMicrosoftのCDNもこれらのファイルを配信します(いつ問い合わせないでください-わかりません!)。 本当にしたい場合は、jQuery CDNのコピーを使用してください。
いくつかのベータバージョンとリリース候補があったため、リリースバージョンのエラーメッセージは表示されません。 厳格なテストの機会がたくさんありました(笑、冗談)。 多くの皆さんが最終リリースを待っています。 そのため、待機する理由はありません。バグレポートで以前に報告されたエラーがあるかどうかを確認できます。
UPD 08/31/2012:
jQuery 1.8.1 。
エラーが見つかった場合は、
jsFiddleまたは
jsbinのテストを作成して、バグ追跡ツールにエラーレポートを送信してください。 間違いを見つけたかどうかわからない場合は、フォーラムにご招待します。 jQuery 1.8.0カーネルは、jQuery UI(1.8.22)およびjQuery Mobile(1.1.1)の最新バージョンと互換性があります。 関連するページでエラーを報告する場合は、忘れずに更新してください。
JQuery 1.8クイックレビュー
このリリースでの重要な変更をリストします。
シズルリファクタリング jQueryのセレクターは、Timmy Willison(実際には2人の著者)によるコードの書き換えのおかげでさらに高速になりました。 もちろん、ほとんどのブラウザーには
querySelectorAllがありますが、ほとんどすべての実装は場所によっては速度が遅く、クロスブラウザー機能があります。 シズルは物事をシンプルにします。 さらに、複雑なセレクターで
:has()または
:contains()などのセレクターを使用できます。 そうそう、IE6 / 7はまだサポートされています。
アニメーションを再描画しました 。 時間の経過とともに、jQueryのアニメーションコードは非常に複雑になりました。 コーリー・フランジはこの沼地に真っ向から飛び込み、ほとんどすべてのワニを殺しました。 ほとんどの変更は明らかではなく、インターフェイスは影響を受けないため、以前のアニメーションは動作するはずです(そしてより良く動作します)。 しかし、アニメーションをより強力かつ拡張可能にするいくつかの大きな改善があります。 注目に値する便利な機能の1つは、
Promisesでの
進行状況コールバックの使用です。 私たちはまだ詳細なドキュメントに取り組んでいますが、
暫定的なドラフトがあります。 そして、実行中の新しいコードの例:
jsbin.com/odocid/1/editCSS自動プレフィックス 。 CSSプロパティ
-.css ()または
.animate()を使用する場合、必要に応じてブラウザースタイルで正しいプレフィックスを作成します。 たとえば、
.css( "user-select"、 "none")を使用します。 Chrome / Safariでは、値を
-webkit-user-selectに設定し、Firefoxでは
-moz-user-selectに設定し
ます 。IE10は
-ms-user-selectを使用し
ます 。
より柔軟な$(HTML、プロパティ) 。 jQuery 1.8
では、$(html、props)からオブジェクトのメソッドまたはプラグインを使用できます。 以前は、メソッドの短いリストが許可されており、そのドキュメントはありませんでした。 今、そのようなリストは必要ありません! ただし、プラグインが後で追加され、HTML属性と同じ名前を持つ場合、これによりコードの動作が異なることに注意してください。
160以上のバグをクローズしました 。 特に、シズルとアニメーションの書き直しは、いくつかの古いエラーの修正に弾みをつけました。そのうちのいくつかはすでに2〜3年前のものです。 マイク・シェロフは、ほとんどのCSSおよび位置決めエラーを解決し、それらをほぼゼロに減らしました。 さらに、IE 6/7/8と最新のブラウザーの厄介な違いを排除するという方針を放棄していないため、これらに対処する必要はありません。
少ないコード 。 すべてのリファクタリング、新機能、およびバグ修正にもかかわらず、圧縮されたjQuery 1.8ファイルはバージョン1.7.2よりも数百バイト小さくなりました。 このバージョンでは、サイズを小さくすること自体が目的ではありませんでしたが、コード量の増加を監視することが重要であると感じ、それが報われました。 プロジェクト全体でコードのサイズを制御しているRichard Gibsonに感謝します。
モジュール性 :プロジェクトのjQuery依存関係を十分に理解している場合は、新しい
うなり声
システムを使用して、jQueryの不要な部分を切り取ることができます。 1.8で今やったことは、実際には始まりにすぎません。 将来のバージョンではさらに柔軟です。
変更の完全なリストを以下に示します(お気に入りのバグが修正されているかどうか疑問に思っている場合)。
削除されたもの
短い答えは「非常に少ない」です。 コードの適応時間を確保するために1.9で削除される非推奨機能の通知の完全なリストを提供したいと思います。 1.8で削除されたもののいくつかは、リバースエンジニアリングを通じて正常に使用されたドキュメント化されていない内部関数ですが、ドキュメント化されていない関数を使用することは常に危険です。 削除されるものは次のとおりです。
$(要素).data(「イベント」) バージョン1.6では、jQueryは名前の競合を防ぐために、内部データとユーザーデータを分離し始めました。 ただし、データ構造の文書化されていない内部「イベント」を使用する人もいるため、.data()を介してそれらを取得することを可能にしました。 これは1.8では不可能ですが、
$ ._ data(element、 "events")を使用してデバッグ用のイベントデータを取得できます。 これはオープンインターフェースではサポートされていないことに注意してください-実際のデータ構造はバージョンごとに互換性がない可能性があります。
Deferred.isResolved()および
Deferred.isRejected() ブール値を返すN-1メソッドを呼び出してN番目の変数の状態を取得するのは少しばかげているので、jQuery 1.7に
Deferred.state()を追加して、1回の呼び出しで状態を判断しました。 したがって、これらの2つの古いメソッドは不要になりました。 これは、Deferredの状態を文字列として頻繁に知りたいスクリプトのデバッグに非常に便利です。
$(要素).closest(配列)、配列を返します 。 これは、従来の
.live()に必要な.closest()メソッドの奇妙な機能でしたが、他のコードでは使用されていません。 これで、他の場所と
同様に 、
.closest()はjQueryオブジェクトを返します。
$ .CurCSS 。 このメソッドは、jQuery 1.3以降
jQuery.css()のエイリアスに
すぎません 。 プロパティはAPIドキュメントの一部ではありませんでしたが、一部はそれを使用しました。 彼はもういません。
$ .AttrFn :
$(html、props)と組み合わせて使用できるメソッドを決定するために使用される、文書化されていない別のプロパティ。 これはjQuery 1.8では機能しませんが、jQueryでは
$ .attrFnを空のままにして、それを使用するコードのエラーを回避します。 注:これはjQuery 1.9で完全に削除されるため、コードを更新してください!
会員
このリリースは、有能なチームの努力なしには実現できませんでした。 jQueryの主要な貢献者は、Julian Aubourg(jaubourg)、Corey Frang(gnarf)、Richard Gibson(gibson042)、Mike Scherov(mikesherov)、Rick Waldron(rwaldron)、およびTimmy Willison(timmywil)です。
jQuery 1.8の開発サイクルに最も貢献してくれたチームとコミュニティのメンバーに感謝します。アンディモナット、ロバートカティック、ジョアオブルーニ、シンドレソルスオレグガイダレンコ、イェフダカッツ、ティモティホフドミニクD.ガイアースコットゴンザレス、ジョーンゼフェラー、マットファーマー、トレイ・ハナー、ジェイソン・ムーン、ベン・アルマン、ジェフリー・フォー・クリス・ボーチャーズ、ダニエル・ジャーマン、ウラジミール・ズラヴレフ、ジェイコブ・ソーントン、チャド・キリングスワース、ノウレス・ラフィド、デヴィッド・ベンジャミン、ウリ・ギラド、クリス・フォークナー、エリジャ・マナー、ダニエル・チャットフィールド
バグの報告に時間を割いてくださった方々に非常に感謝しています。 ただし、エラーを再現しないと、エラーを修正できません。 jQueryに貢献する簡単な方法を探している場合は、トラッカーエラーを確認し、視覚的な回帰テストを作成してください。 問題を再現できるとすぐに、解決策は通常すぐに続きます。 これらのテストは単体テストの基礎となり、将来のエディションで変更されないコードの将来のエラーを防ぎます。
変更ログ :
#(バグとタスクのリストはあいまいです:見出しは、それらが取り除いたこのプロパティ(%80など)も、新しいプロパティを取得するという解決された問題も示していません。バグの見出しはすべて自分で推測する必要がありますが、98%の場合、これは問題ではありません。 それらについての怠laz .--およそtransl。)アヤックス
- #8205 :ランダムなJSONPの結果によりIE8でメモリリークが発生する
- #8653 : jQuery.paramはクエリ文字列に「 null 」と「 undefined 」を表示します
- #9399 : * jqXHR.successおよびjqXHR.error _非推奨_
- # 10285 : evalScriptの置き換え-> cleanScript (?)IE8で機能しない
- # 10524 : jQuery.fn.loadはデータパラメーターとjQuery.ajaxSetupを結合しません
- #10944 : $ .ajaxは、 Promiseインターフェイスを実装するオブジェクトを常に返さない
- #11013 : * _推奨され ません_同期$ .ajaxでDeferred / Promiseを使用
- #11402 :IEでevalScript関数がエラー80020101で終了する
- #11743 :jQueryは、 $ .appendTo()の Ajaxリクエストで<script>タグのエラーを静かに無視します
- #11778 :キャッシュされたXHRリクエストは常に非同期に実行されます
- #12122 : *非同期jQuery.ajax() _推奨しない _ $ .Deferredで使用する
属性
- #11153 :IE 8で複数の改行があるjQuery 1.7の動作
- #11212 : Sizzle.getTextは、改行しないスペースをIEのスペースに変換します
- #11547 :XML DOM .removeAttr()は大文字と小文字を区別する属性を削除しません
- #11962 :空の値のゲッターによるリターンの標準化
- #12127 : clone()はチェックされた状態を誤ってIE10にコピーします
構築する
- #11767 :効果のないカスタムビルドのサポート
- #11789 :READMEを「grunt build」システムの説明に更新
- #11856 :モジュール性の寸法
- #11857 : CSSモジュール
- #11865 :モジュール性オフセット
- #11965 : ** 廃止された構造の最大値をリストするdeprecated.jsを作成する
- #12059 : ` grunt custom`を縮小し、ヘッダーにモジュールを追加/削除する必要があります
- #12158 :jQuery 1.8rc1はYUICompressor 1.4.7で動作しません
コア
- #10657 : * _非推奨_ jQuery ...サイズ() 、 _推奨_ jQuery ...長さ
- #11290 :HTMLとして解釈されるセレクター
- #11470 :組み込みのreadyP約束の追加
- #12018 : ** $(ドキュメント).ready()がIE8で早すぎる
- #12026 : ** $(html、props)に jQuery.fnメソッドを使用させます
Css
- #10373 : `document.defaultView` =>`ウィンドウ `
- #10394 : jQuery.cssHooks.opacityがIE以外のブラウザーで例外をスローする
- # 10413 : 幅、innerWidth、innerHeight、outerWidth、outerHeightは、非表示の親の「 ボックスサイズ:境界ボックス 」の子孫(DOM)に対して不正確です
- #10679 : ** CSS3ベンダープレフィックスのサポート
- #11004 : ボックスサイズがborder-boxの場合、 getWHがインデントとボーダーを誤って削除する
- #11787 : jQuery.curCSSを削除する
- #12088 :WebkitはいくつかのgetComputedStyleプロパティに関心を返すようになりました
- #12148 : 非表示イベントがトグルで機能しない
「データ」
- #7579 : jQuery.data()はdata-xxx属性から取得した数値を切り捨てます
- # 10589 : $ .fn.data(「イベント」)を削除
- #11435 :返された.data値からtoJSONを削除するための古いテストコード
延期
- #11010 : Deferred.then == Deferred.pipeをPromise / Aのようにする
- #11011 :$ .Callbacksフラグの従来のオブジェクトオプションを作成する
- #11736 :保留中の.isResolved()および.isRejected()を削除
- #11749 :いくつかの保留中のオブジェクトが$ .when()に転送されるときにオブジェクトコンテキストを保存する
DOMの寸法
- #6724 :Mobile Safari(iPhone)の$(window).height()が間違っている
- #10877 : outerWidth / Heightのセッターを作成する
- #11293 :空のTDの 幅またはouterWidthを読み取ると列の幅が変更される
- #11604 : $ (elem).width(0)に操作がない場合、 $(elem).width(-val)が変更される
- #11724 :Firefox 12では$(ドキュメント).height()が変更されました
効果
- #7109 : Webkitで幅アニメーションが間違った幅で開始する
- #7157 :アニメーションのコールバック関数は、「 :animated 」とまったく同じ要素を表示します
- #8387 :インラインおよびインラインブロック要素のWebkitで非表示/表示する場合-ちらつきの問題
- #8627 : IEのletterSpacingで.animate()が機能しない(バージョン1.5.1以降)
- #8892 :コールバックはfadeIn()およびjQuery.fx.off = trueで以前に動作し ます
- #9217 :IE8のJSエラー:アニメーション中に、アニメーションが終了する前に要素が削除される
- #9505 : animate() -WebKitでパーセントとピクセルを混合するときの問題
- #11635 :明示的に指定されたプロパティオーバーフロー:インラインコードオーバーフローによって自動がオーバーライドされる:アニメーション中に非表示
- #11755 :アニメーションとその実際の類似物は:隠しセレクターを使用しないでください
- #11797 :関連イベントの新しいアニメーション
- #11854 :パーセントアニメーションが最後までスキップする
- #11971 : 背景位置によるアニメーションがIE8で機能しない
- #11999 : 位置付きのブロックのアニメーションをインクリメント:固定はChromeで追加する代わりに減算を実行する
- #12117 : オーバーフロー:ゼロの高さまたは幅でアニメーション化すると、 非表示が正しく機能しません
- #12138 :基本的なSVG要素のChromeでfadeOutが機能しない
- #12150 : **セルの行が開いたり隠れたりすると、 ボーダー間隔プロパティが増加する
イベント
- #8545 :IEのイベントリーク
- #10067 : document.readyState === 'interactive'が通常を超えたときに$ .readyが表示される
- #10895 :IEのbindScrollyでのdoScrollCheckのハックが理由なくIE7の速度を低下させる
- #11101 : * _推奨されない_イベントのトリガー()メソッドからの記号「排他的」
- #11315 : デリゲート()と:同じクラスのネストされた要素の最初の問題
- #11328 : Ctrlキーを押してもWindowsでevent.metaKeyがtrueに設定されない
- #11382 : mouseenterは 、 無効化されたinputタグで作成されません
- #11500 :バグ:IE7 / 8で手動で起動したときに「 変更 」ハンドラーが実行されない
- #11621 : ドキュメントでイベントをトリガーしてもウィンドウにポップアップしない
- #11718 : * _非推奨 _ event .data()
- #11719 : * _非推奨_ event .bind ( "ready")イベント
- #11731 : * _推奨されない_疑似イベント「 ホバー 」
- #11733 : * _非推奨_メソッド.load()、. unload () 、および.error()
- #11764 :無効な要素で委任された非ネイティブイベントを許可する
- #11786 : * _非推奨_パラメーター(署名) .toggle (ハンドラー、ハンドラー、...)
- #12203 : .undelegate()引数なしでは、親要素のすべてのハンドラーが解放されます
操作(DOM内)
- #8894 : appendTo()およびclone()の後に呼び出される同様のメソッドがIEで間違った要素セットを返す
- #10324 :IE9でclone()がinnerHTML オブジェクトタグをコピーしない
- #11231 : Append、Prepend、After、Beforeは、最初の引数に配列を取る必要があります
- #11325 : domManip / buildFragment / cleanの改善
- #11338 : .replaceWith()および無効なノードとの互換性のない動作
- #11528 :IE8でのhtml5タグを含む.html()のシリアル化エラー
- #11566 :ノードがDocumentFragmentの場合、 node.appendなどの機能が機能しない
- #11617 : HTMLフラグメントを作成するための$ .parseHTMLメソッドを定義する
- #11809 :セッター.text(val)のメモリリーク(?)
- #11898 : prevAll()と複雑なセレクター:not()は間違った順序で結果を返す
- #12132 : parentNodeなしで要素を複製する際のIE10のバグ
offset()メソッド
- #10996 :簡略化オフセット()
- # 11823 : webkitConvertPointFromNodeToPageの削除
セレクター
- #3778 :セレクター検索の問題
- #5568 :FF / IEのコメントタグではセレクターの動作が異なる
- #7596 :角括弧[]を使用したxpath属性セレクターが正しく動作しない
- #8473 :IE9rcの場合* [tabIndex]は tabIndexなしを含むすべての要素を選択します
- #8906 :。 (PrevAll( 'span:has(input、select、textarea)')
- #9400 : * _非推奨_セレクター:テキスト、:ラジオ、:チェックボックスなど
- #9810 :位置セレクターのロジックの変更
- #10003 :#6963からの回帰/ BCブレーク
- #10074 :2つの角括弧セレクター[]との結合:最初は機能しません
- #10499 :: nth-child() inside :has()はあたかも外側にあるかのように扱われます
- #10570 ::ページにクロスドメインiframeがあると、IE7でテキストにエラーが発生する
- #10697 : シズルの再構成
- #10799 :セレクタ[name = "name"]の結果が競合する( .hasも台無しにする )
- # 10809 : 「. activeElement 」を使用した不正なテスト:フォーカス
- #11109 : シズル :相対表現が途中で途切れる
- #11120 :IE7の一部のセレクターでブックマーク(タブ)が壊れる
- #11814 :シズル要素に根ざしたQSA戦略(たとえば、一時IDの付加)にはコンマやその他の区切り文字が含まれていません
- #11826 :SizzleでmatchesSelectorの分析されたキャッシュシステムを調査する
- #11902 :バグ:なし + :セレクターを含む
- #11918 :セレクターの問題:名前に「:」を含むタグを使用するとeq
- #11959 : **セレクターサポート:アクティブ
- #11961 : jQuery ...での 「最大スタックサイズの超過」は()
- #11966 : **子孫セレクター
- #11969 :隣接する要素(兄弟)を検索するときにnullのチェックがありません
- #12054 : "Uncaught TypeError":オブジェクト#<HTMLDocument>にはメソッド ' getAttribute 'がありません
- #12057 :シズル回帰
- #12082 : .find() POSセレクターがバージョン1.8b2で機能しない
- #12153 :セレクターでエラーが発生する
.supportプロパティ
- #9385 : * _非 推奨 _ jQuery.browser
- #11163 : jQuery.support.checkCloneは常にtrue
- #11249 :jQuery 1.7.1をロードするときのChrome 18でのCSPエラー
- #11439 : jQuery.support.parentNodeが使用されますが、定義されなくなります
- # 11721 : * _非推奨_およびjQuery.support.boxModelの内部使用が削除されました
- #11757 :jQuery 1.7.2+のIE8のフレームでのメモリリーク
- #11766 : jQuery.supportにステータス「不安定」が割り当てられました
変位
- #9800 :新しい.addBackメソッド( .andSelfの代わりに)
- #11539 :すべてのjQueryバージョンは、 $(<text_element> .parentNode).has(other_element)の .has()をサポートしていません
- #11543 : .has()はDOMから切断された要素では機能しません
- #11706 : .has()がドキュメントフラグメントで機能しない
- #11738 : 配列を返す.closest(配列)を削除
*)メソッドとプロパティの非推奨の使用。
**)新機能の実装または重大なバグの除去
(--notation transl。) 。
追加します。 QA(トランスから。コメントから)
Q:完全なライブラリではなく、その一部を選択するにはどうすればダウンロードできますか?
A:github.com/jquery/jquery#how-to-build-your-own-jquery
leshaogonkovカスタムビルドを作成するには、次の特別なgruntコマンドを使用します。
Ajaxを除外する:
grunt custom:-ajax
CSSを除外:
grunt custom:-css
非推奨の除外:
grunt custom:-deprecated
ディメンションを除外:
grunt custom:-dimensions
効果を除外する:
grunt custom:-effects
オフセットを除外:
grunt custom:-offset
すべてのオプションモジュールを除外します。
grunt custom:-ajax,-css,-deprecated,-dimensions,-effects,-offset
注:依存関係は、ビルドプロセスによって内部的に処理されます。