å€‹äººçš„ã«æ²¹æ–ã—ã¦ãŸã‚“ã§ã™ãŒã€jQuery 1.8ãŒãƒªãƒªãƒ¼ã‚¹ã•れã¾ã—ãŸã。
CSSã®ãƒ™ãƒ³ãƒ€ãƒ¼ãƒ—レフィックスを自動ã§ã»ã¼è£œå®Œã—ã¦ãれるよã†ã«ãªã£ãŸã®ãŒç›®çŽ‰æ©Ÿèƒ½ã§ã—ょã†ã‹ã€‚作æ¥é‡ã¨ã—ã¦ã¯ã€ã‚»ãƒ¬ã‚¯ã‚¿ãƒ¼ã‚¨ãƒ³ã‚¸ãƒ³Sizzleã¨ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³é–¢ä¿‚ã‚’å…¨é¢çš„ã«æ›¸ãæ›ãˆãŸäº‹ãŒå¤§ããã†ã§ã™ã€‚ãªãŠè«¸ã€…強化ã•れã¦ã„ã‚‹ã«ã‚‚é–¢ã‚らãšã€ãƒ•ã‚¡ã‚¤ãƒ«ã‚µã‚¤ã‚ºã¯æ¸›ã£ã¦ã„ã¾ã™ã€‚(ã¡ã‚‡ã£ã¨ã ã‘ã©ã。) ãˆã‚‰ã„ï¼
- jQuery Blog » jQuery 1.8 Released
- jQuery Blog » jQuery 1.8 Beta 1: See What’s Coming (and Going!)
- jQuery Blog » The New Sizzle
- jQuery Blog » jQuery Core: Version 1.9 and Beyond
- jQuery Blog » jQuery 1.9 and 2.0 — TL;DR Edition
ãªãŠjQuery UI (1.8.22)ã¨jQuery Mobile (1.1.1)ãŒæ£å¸¸ã«å‹•作ã™ã‚‹äº‹ã¯ç¢ºèªã—ã¦ã„るよã†ã§ã™ã€‚
ダウンãƒãƒ¼ãƒ‰
ã¡ãªã¿ã«WordPressã§åˆ©ç”¨ã™ã‚‹ã«ã¯ã“ã¡ã‚‰ã®è¨˜äº‹ã‚’。
主ãªå¤‰æ›´ç‚¹
CSSã®ãƒ™ãƒ³ãƒ€ãƒ¼ãƒ—レフィックスを自動付åŠ
ã„ã¾ã¾ã§ $elem.css('-webkit-transform', '...') ã£ã¦æ›¸ã„ã¦ãŸã®ãŒ $elem.css('transform', '...') ã§æ¸ˆã‚€ã‚ˆã†ã«ãªã‚Šã¾ã—ãŸã€‚ã„やーã€ã“れ良ã„ã§ã™ã。
ãŸã ã—ç½ ãŒã‚りã¾ã™ã®ã§ã”注æ„。
モジュール化
jQuery UIã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã§ã™ã。jQueryã¯ãŸãã•ã‚“ã®æ©Ÿèƒ½ãŒã‚りã¾ã™ãŒã€å¿…è¦ãªã‚‚ã®ã ã‘ã‚’é¸ã‚“ã§ã‚«ã‚¹ã‚¿ãƒ ã—㟠jquery.js を作æˆã§ãるよã†ã«ãªã‚Šã¾ã—ãŸã€‚
アニメーションã®å‡¦ç†ã‚’刷新
複雑ã«ãªã£ã¦ãã¦ç®¡ç†ãŒå¤§å¤‰ã«ãªã£ã¦æ¥ãŸäº‹ã¨ã€ä½•やら壮大ãªè¨ˆç”»ãŒã‚ã‚‹ãã†ã§ã€ã¾ã‚‹ã£ãã‚Šæ›¸ãæ›ãˆãŸã¨ã®äº‹ã€‚
使ã†å´ã¨ã—ã¦ã¯ã€åŸºæœ¬çš„ã«ã¯ä»Šã¾ã§ã©ãŠã‚Šã§ã™ã€‚
セレクター解æžã‚¨ãƒ³ã‚¸ãƒ³Sizzleã‚’å†æ§‹ç¯‰
一ã‹ã‚‰æ›¸ãç›´ã—ãŸã‚ˆã†ã§ã™ã€‚(ã—ã‹ã‚‚二度ï¼ï¼‰ã€€ã“れã§éŽåŽ»ã®ã‚‚ã®ã‚ˆã‚Šã‚‚高速ã«ãªã£ãŸã¨ã‹ã€‚ã©ã“ã‹ã«æ¯”較ã¨ã‹ã‚ã‚‹ã®ã‹ãªï¼Ÿ
ãŸã ã—高速化ã®å½±éŸ¿ãŒã‚ã‚‹ã®ã¯è¤‡é›‘ãªã‚»ãƒ¬ã‚¯ã‚¿ãƒ¼ã§ã™ã€‚å˜ç´”ãªã‚»ãƒ¬ã‚¯ã‚¿ãƒ¼ï¼ˆIDやクラスã€è¦ç´ åã ã‘ã®ã‚‚ã®ï¼‰ã«ã¤ã„ã¦ã¯ä»Šå›žã¯é«˜é€ŸåŒ–ã•れã¦ã„ã¾ã›ã‚“。元々ã»ã¼é™ç•Œã¾ã§é«˜é€ŸåŒ–ã•れã¦ã„ã¾ã—ãŸã‹ã‚‰ã€‚
XSS対ç–
強化ã•れãŸã‚ˆã†ã§ã™ã€‚ã‚ã‚“ã¾ã‚Šã‚ˆãã‚ã‹ã‚‰ã‚“ã®ã§ã™ãŒã€ $.parseHTML() ãŒç”¨æ„ã•れã¦ã„ã¾ã™ã€‚今後ã¯ã“れを使ãˆã¨ã„ã†æ–¹é‡ã®ã‚ˆã†ã§ã™ã€‚
$('<script>alert()</script>'); // => [<script>​alert()​</script>​]
$.parseHTML('<script>alert()</script>'); // => []
$.parseHTML('<script>alert()</script>', null, true); // => [<script>​alert()​</script>​]
ã¾ãŸä»Šå¾Œ (1.9) ã§ã¯ã•らã«å¯¾ç–を強化ã™ã‚‹ã€ã¨ã®ã‚¢ãƒŠã‚¦ãƒ³ã‚¹ã‚‚ã‚りã¾ã™ã€‚ $(html) ã§ç”Ÿæˆã§ãã‚‹ã®ã¯ã”ãå˜ç´”ãªã‚‚ã®ï¼ˆä¾‹ãˆã° $('<p />') ã®ã‚ˆã†ãªã‚‚ã®ï¼‰ã«é™ã‚‰ã‚Œã€ã¾ãŸä¸€æ–‡å—目㌠< ã§ãªã„ã¨é§„ç›®ã«ãªã‚‹ãã†ã§ã™ã€‚
ã¾ã‚普通ã¯ãã†ã„ã†ä½¿ã„æ–¹ã ã‘出æ¥ã‚Œã°è‰¯ã„ã‚“ã˜ã‚ƒãªã„ã‹ãªã¨æ€ã„ã¾ã™ã€‚属性付ãã®HTMLè¦ç´ を生æˆã™ã‚‹å ´åˆã¯ã€ attr() を使ã†ã‹ã€ $(html, props) ã¨ã„ã†æ›¸ãæ–¹ãŒã§ãã¾ã™ã€‚
var $elem = $('<element />', { attr1: val1, attr2: val2 });
// => [<element attr1="val1" attr2="val2" />]
削除
| 詳細 | API | 備考 |
|---|---|---|
| #11787 | $.curCSS |
|
| #10589 | $elem.data("events") |
デãƒãƒƒã‚°ç”¨ã« $._data($elem, "events") ãŒåˆ©ç”¨å¯èƒ½ã€‚ |
| #11738 | $elem.closest(Array) |
.closest( selector ) ã¯å¼•ãç¶šã利用å¯èƒ½ã€‚ |
| #11736 | deferred.isResolved() |
deferred.stat() ã§ä»£ç”¨ã€‚ |
| #11736 | deferred.isRejected() |
deferred.stat() ã§ä»£ç”¨ã€‚ |
実㯠$elem.data("events") ãŒä½•ã ã‹ã‚ã‹ã£ã¦ã¾ã›ã‚“。
$elem.data(“events”)ã¯jQueryãŒå†…éƒ¨ç”¨ã«æŒã£ã¦ã‚‹ã€è¦ç´ ã”ã¨ã«è¨å®šã•れãŸã‚¤ãƒ™ãƒ³ãƒˆãƒãƒ³ãƒ‰ãƒ©ã§ã™ã
ã¨ã®äº‹ã§ã™ã€‚
削除アナウンス
å°†æ¥ï¼ˆ1.9ã¨ã‹ï¼‰å‰Šé™¤ã•れるらã—ã„。ã„ã¤æ¶ˆãˆã‚‹ã‹ã¯å€‹åˆ¥ã«èª¿ã¹ã¦ãã ã•ã„。
| 詳細 | API | 備考 |
|---|---|---|
| #9385 | $.browser |
$.support ã§æ©Ÿèƒ½åˆ¥ã«å‡¦ç†ã‚’。 |
| blog | $.attrFn |
|
| blog | $.sub() |
|
| blog | ã‚°ãƒãƒ¼ãƒãƒ«Ajaxイベント | |
| #11721 | $.support.boxModel |
|
| #11013 | $.ajax() ã§ {async:false} ã¨Deferredã®ä½µç”¨ |
åŒæœŸé€šä¿¡ã§ã¯å¿…ãšã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯é–¢æ•°ã‚’利用ã™ã‚‹ã€‚ |
| #10657 | $elem.size() |
$elem.length ã§ä»£ç”¨ã€‚ |
| #11733 | $elem.load() |
$elem.on('load') ã§ä»£ç”¨ã€‚ |
| #11733 | $elem.unload() |
$elem.on('unload') ã§ä»£ç”¨ã€‚ |
| #11733 | $elem.error() |
$elem.on('error') ã§ä»£ç”¨ã€‚ |
| #9800 | $elem.andSelf() |
$elem.addBack() ã¸ç§»è¡Œã€‚ |
| #11719 | $elem.bind('ready', fn) |
$(fn) ãªã„ã— $.ready(fn) ã§ä»£ç”¨ã€‚(※1) |
| #11786 | $elem.toggle(handler1, handler2) |
$elem.toggle([duration] [, callback]) ã¯å¼•ãç¶šã利用å¯èƒ½ã€‚(※2) |
| #9400 | ãƒ•ã‚©ãƒ¼ãƒ é …ç›®ç–‘ä¼¼ã‚¯ãƒ©ã‚¹ï¼ˆ :text ã‚„ :checkbox ãªã©ï¼‰ |
[type=text] ç‰ã§ä»£ç”¨ã€‚ |
| #11731 | hover イベント |
|
| #11718 | $elem.data() ã§ç™ºç«ã™ã‚‹ã‚¤ãƒ™ãƒ³ãƒˆ |
|
| #9399 | $.ajax() ãŒè¿”ã™Promiseã® .success() |
Promiseã® .done() ã¸ç§»è¡Œã€‚ |
| #9399 | $.ajax() ãŒè¿”ã™Promiseã® .error() |
Promiseã® .fail() ã¸ç§»è¡Œã€‚ |
| #9399 | $.ajax() ãŒè¿”ã™Promiseã® .complete() |
Promiseã® .always() ã¸ç§»è¡Œã€‚ |
- ※1 … 厳密ã«è¨€ã†ã¨ã¡ã‚‡ã£ã¨é•ã„ã¾ã™ã€‚
ready発ç«å‰ãªã‚‰åŒã˜ã§ã™ãŒã€ready発ç«å¾Œã«.on('ready', fn)ã—ã¦ã‚‚fnã¯å®Ÿè¡Œã•れã¾ã›ã‚“。$.ready(fn)ã§ã‚れã°ã€ç™ºç«å¾Œã«å®Ÿè¡Œã—ãŸå ´åˆfnã¯å³æ™‚実行ã•れã¾ã™ã€‚ãªãŠreadyã¯jQuery独自ã®ã‚¤ãƒ™ãƒ³ãƒˆã§ã™ã€‚ - ※2 …
.toggle()ã«ã¯1.0ã®é ƒã‹ã‚‰ã€Œ.show()ã¨.hide()を交互ã«å®Ÿè¡Œã™ã‚‹ã€ã¨ã„ã†æ©Ÿèƒ½ã¨ã€ã€Œã‚¯ãƒªãƒƒã‚¯ã•れるãŸã³ã«äºŒç¨®é¡žã®ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯é–¢æ•°ã‚’交互ã«å®Ÿè¡Œã™ã‚‹ã€ã¨ã„ã†æ©Ÿèƒ½ãŒã‚りã¾ã—ãŸã€‚åå‰ãŒã‹ã¶ã£ã¦ã‚‹ã¨ã„ã†ã‚ã‘ã§ã™ã。紛らã‚ã—ã„ã®ã§å¾Œè€…ãŒå‰Šé™¤ã«ãªã‚Šã¾ã™ã€‚
ã„ã‚„ã¯ã‚„〠$.browser ã¯å‰ã€…ã‹ã‚‰éžæŽ¨å¥¨ã¨ã•れã¦ã¾ã—ãŸãŒã€ã„よã„よ削除ã§ã™ã€‚ã“れもå«ã‚ã€ã ã„ãŸã„ã¯äº’æ›ãƒ—ラグインã¸ã®ç§»è¡ŒãŒè¨ˆç”»ã•れã¦ã„る様åã§ã™ã€‚
ファイルサイズ
| ファイルå | ファイルサイズ |
|---|---|
| jquery-1.8.0.min.js | 92,556 Bytes |
| jquery-1.7.2.min.js | 94,840 Bytes |
ã‚ãšã‹ã§ã™ãŒã€å°ã•ããªã‚Šã¾ã—ãŸã€‚減ã£ãŸã¨ã„ã†ã‹ã€æ©Ÿèƒ½ã‚’è¿½åŠ ã—ã¦ã„ã‚‹ã®ã«å¢—ãˆãªã‹ã£ãŸã€ã¨ã„ã†è¦³ç‚¹ã§è¦‹ã‚‹ã¨å¬‰ã—ã„ã‹ãªã¨æ€ã„ã¾ã™ã€‚
ã•ã¦ã€ã§ã¯å€‹åˆ¥ã«è¦‹ã¦è¡Œãã¾ã—ょã†ã‹ã€‚
ベンダープレフィックス自動補完
CSSã®ãƒ—ãƒãƒ‘ティをæ“作ã™ã‚‹éš›ã€åå‰ã¯è‡ªå‹•çš„ã«ãƒ™ãƒ³ãƒ€ãƒ¼ãƒ—レフィックスãŒè£œå®Œã•れるよã†ã«ãªã‚Šã¾ã—ãŸã€‚例ãˆã° $elem.css('transform', '...') ã¨æ›¸ãã¨ã€è‡ªå‹•的㫠"-moz-transform" ãªã‚Š -webkit-transform" ãªã‚Šã€é©åˆ‡ãªã‚‚ã®ãŒåˆ©ç”¨ã•れã¾ã™ã€‚
ベンダープレフィックスã®å¿…è¦ãƒ»ä¸è¦ã‚’見分ã‘ã‚‹ã®ã«ãƒ–ãƒ©ã‚¦ã‚¶ãƒ¼ãŒæŒã£ã¦ã„ã‚‹ã‚¹ã‚¿ã‚¤ãƒ«æƒ…å ±ã‚’åˆ©ç”¨ã—ã¦ã„ã‚‹ã®ã§ã€å¸¸ã«æœ€æ–°ã®ãƒ–ラウザーã«å¯¾å¿œã§ãã¾ã™ã€‚
値ã¯ãƒ™ãƒ³ãƒ€ãƒ¼ãƒ—レフィックスãŒè£œå®Œã•れãªã„
ãŸã ã—ã²ã¨ã¤æ³¨æ„点ãŒã‚りã¾ã—ã¦ã€ãƒ—ãƒãƒ‘ティåã®æ–¹ã«ã¯è‡ªå‹•ã§ä»˜åŠ ã—ã¦ãれã¾ã™ãŒã€å€¤ã®æ–¹ã¯ãã†ã¯ã—ã¦ãれãªã„ã¿ãŸã„ã§ã™ã€‚例ãˆã° transition ã§æ³¨æ„ãŒå¿…è¦ã§ã™ã€‚
// Webkitã®ãƒ™ãƒ³ãƒ€ãƒ¼ãƒ—レフィックスã®å ´åˆ
$elem.css('-webkit-transition', '-webkit-transform 1s'); // OK
$elem.css( 'transition', '-webkit-transform 1s'); // OK
$elem.css( 'transition', 'transform 1s'); // NG
"transform" ã§ã¯ãªãベンダープレフィックスを付ã‘ã¦ã€ "-webkit-transform" ã®ã‚ˆã†ã«ã—ã¦ã‚„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
モジュール化
ãŸã ã—jQuery UIã®ãƒ“ルドツールã®ã‚ˆã†ãªã€ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ã§ã‚«ã‚¹ã‚¿ãƒ ã—ã¦ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã€ã¨ã„ã†ãƒ„ールã¯ï¼ˆã¾ã ?)ãªã„よã†ã§ã™ã€‚作るã‹ã€‚
以下ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«åˆ†å‰²ã•れã¦ã„ã¾ã™ã€‚
ajaxcssdimensionseffectsoffset
ãªãŠä»Šå¾Œã‚‚フル版をæä¾›ã—ç¶šã‘ã‚‹ã®ã§ã€ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã¯ã‚„ã‚“ãªãã¦ã„ã„よ安心ã—ã¦ãã€ã¨ã®äº‹ã§ã™ã€‚
ビルドツールã¯grunt
カスタムビルドã«ã¯gruntを利用ã—ã¾ã™ã€‚
- cowboy/grunt
- gruntã§å¿«é©JS/CSSビルド生活 – Takazudo hamalog (※å¤ã„ã§ã™ã€‚)
jQuery 1.8ã®ãƒ“ルド方法ã¯ã“ã¡ã‚‰ã«ã€‚
ã“ã®gruntã®å°Žå…¥ã¨åˆ©ç”¨ã¯ï¼ˆUNIXã«ä¸æ…£ã‚Œãªæ–¹ã«ã¯ï¼‰ã ã„ã¶å¤§å¤‰ã‹ã¨æ€ã„ã¾ã™ã€‚ã‚„ã£ã±ã‚Šã‚ªãƒ³ãƒ©ã‚¤ãƒ³ãƒ“ルダーãŒå¿…è¦ã§ã™ã‚ˆã。
アニメーション
ä¸èº«ãŒã“ã‚“ãŒã‚‰ãŒã£ã¦ããŸã®ã§æ•´ç†ã—ã¦ã€Deferredをより有効ã«ä½¿ã†ã‚ˆã†ã«ãªã£ãŸã‚ˆã†ã§ã™ã€‚
高度ãªã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³å‡¦ç†ã‚’より円滑ã«è¡Œã†ãŸã‚ã«ã€ $.Animation ã¨ã„ã†ãŒç”¨æ„ã•れã¾ã—ãŸã€‚専用ã®ãƒ—ãƒãƒ‘ティをæŒã£ãŸPromiseã‚’è¿”ã—ã¾ã™ã€‚(Promiseã£ã¦ã®ã¯Deferredã®ã‚¢ãƒ¬ã§ã™ã€‚)
$.Animation ã®ç°¡å˜ãªä½¿ã„æ–¹
ã¾ã ドã‚ãƒ¥ãƒ¡ãƒ³ãƒˆã«æŽ²è¼‰ã•れã¦ã„ãªã„よã†ãªã®ã§ã€è©¦ã—ã¦ã¿ã¦ã•ã£ãã‚Šä½¿ã„æ–¹ã‚’示ã—ã¾ã™ã€‚
var anim = $.Animation($elem[0], { left: 100 }, { duration: 1000 });
注æ„点ãŒäºŒã¤ã‚ã£ã¦ã€ã¾ãšç¬¬ä¸€å¼•æ•°ãŒjQueryオブジェクトã§ã¯ãªã„äº‹ã«æ³¨æ„ã—ã¦ãã ã•ã„。生ã®HTMLè¦ç´ オブジェクトã§ã™ã€‚
ã‚‚ã†ã²ã¨ã¤ã¯å¼•æ•°ã‚’çœç•¥ã§ããªã„ã¨ã„ã†ã“ã¨ã€‚三ã¤ã¨ã‚‚指定ã—ãªã„㨠TypeError ã«ãªã£ã¡ã‚ƒã„ã¾ã™ã€‚全体的ã«ã‚¨ãƒ©ãƒ¼è¨‚æ£ã¯çœç•¥ã•れã¦ã„ã‚‹å°è±¡ã§ã™ã€‚速度を求ã‚ãŸçµæžœãªã®ã ã¨æ€ã„ã¾ã™ã€‚
TypeError: Cannot read property 'duration' of undefined
戻り値 anim ã¯Promiseã§ã€ .progress() ã‚„ .done() ã¨ã„ã£ãŸãƒ¡ã‚½ãƒƒãƒ‰ã‚’用ã„ã¦ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯é–¢æ•°ã‚’与ãˆã‚‹äº‹ãŒã§ãã¾ã™ã€‚
$.Animation ã¯å„種ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã«åˆ©ç”¨ã§ãã‚‹
ã¾ãŸç¬¬ä¸€å¼•æ•°ã¯ã€å®Ÿã¯ä»»æ„ã®ã‚ªãƒ–ジェクトを与ãˆã‚‹äº‹ãŒã§ãã¾ã™ã€‚より抽象的ãªä½¿ã„方を示ã—ã¾ã™ã€‚
var from = 0, to = 100;
var elem = { value: from };
var properties = { value: to };
var options = { duration: 1000 };
var anim = $.Animation(elem, properties, options);
// animã¯Promise
anim
.progress(function() { console.log('progress', arguments); })
.done(function() { console.log('done', arguments); });
ã“ã£ã¡ã®ä½¿ã„æ–¹ã®æ–¹ãŒ $.Animation ã‚’ä½¿ã†æ„義ãŒã‚りãã†ã€‚実際ã€jQuery Blogã§ã¯Canvasã‚’æ“作ã™ã‚‹ä¾‹ã‚’挙ã’ã¦ã„ã¾ã™ã€‚
ã“ã®ã¨ã注æ„ãŒå¿…è¦ãªã®ãŒã€ properties ã«ä¸ŽãˆãŸãƒ—ãƒãƒ‘ティã¯ã€å¿…ãš elem ã«ã‚‚å˜åœ¨ã—ãªã‘れã°ãªã‚‰ãªã„ã¨ã„ã†äº‹ã§ã™ã€‚å˜åœ¨ã—ãªã„å ´åˆã€ TypeError ã«ãªã‚Šã¾ã™ã€‚
TypeError: Cannot use 'in' operator to search for 'xxx' in undefined
jQueryã®ä»Šå¾Œã®å±•é–‹
予定
- jQuery 1.9 (2013å‰åŠ)
- 1.8ã§ã€Œå対ã€ã¨ã•れãŸå¤šæ•°ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを削除。一部ã«ã¤ã„ã¦ã¯äº’æ›ãƒ—ラグインをæä¾›ã€‚IE 6/7/8も引ãç¶šãサãƒãƒ¼ãƒˆã€‚
- jQuery 1.9.x (2013年末)
- 引ãç¶šãä¸å…·åˆä¿®æ£ã‚„新ブラウザーã¸ã®å¯¾å¿œãªã©ã€‚
- jQuery 2.0 (2013å‰åŠã€1.9ãŒå‡ºã¦ã™ã)
- ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã¯1.9ã¨åŒã˜APIã‚’æä¾›ã€‚ãŸã ã—IE 6/7/8ã®ã‚µãƒãƒ¼ãƒˆã‚’打ã¡åˆ‡ã‚Šã€å†è¨è¨ˆã—ã¦è»½é‡åŒ–ã€é«˜é€ŸåŒ–。
å¤ã„IEã®ã‚µãƒãƒ¼ãƒˆ
継続ã•れã¾ã™ã€‚
1.9ã¨2.0ã¯ï¼ˆå¤ã„IEã®ã‚µãƒãƒ¼ãƒˆä»¥å¤–ã¯ï¼‰åŒã˜æ©Ÿèƒ½ã‚’æä¾›ã™ã‚‹ã‚ˆã†ã«ãªã‚‹ã¿ãŸã„ã§ã™ã€‚ä¸å®‰ãªã‚‰å…¨ã¦ã‚«ãƒãƒ¼ã—ãŸ1.9を使ãˆã°è‰¯ã„ã—ã€ä¸è¦ãªã‚‰è»½é‡ãª2.0を使ãˆã°ã‚ˆã‚ã—ã„。
ã¾ãŸHTMLã‚’ã“ã‚“ãªé¢¨ã«ã™ã‚‹äº‹ã§ã€é©åˆ‡ãªãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®jQueryã‚’èªã¿è¾¼ã‚€äº‹ãŒã§ãã¾ã™ã€‚
<!--[if lt IE 9]>
<script src="jquery-1.9.0.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
<script src="jquery-2.0.0.js"></script>
<!--<![endif]-->
å°†æ¥ (2.1) ã§ã¯å¤ã„IEã®ã‚µãƒãƒ¼ãƒˆã¯ã©ã†ãªã‚‹ã‹
「(å ã„ã®ï¼‰æ°´æ™¶çމã§ã‚‚æŒã£ã¦ãã‚„ãŒã‚Œã€ã¨ã®äº‹ã§ã™ã€‚
ã¡ãªã¿ã«Windows XPã®ã‚µãƒãƒ¼ãƒˆã¯2014å¹´ã®å››æœˆã¾ã§ã€‚ãã‚“ãªã«æ°—ã«ã—ãªãã¦è‰¯ã„ã‚“ã˜ã‚ƒãªã„ã‹ãªã€‚
ãŠã—ã¾ã„
é–“é•ã£ã¦ã‚‹ã¨ã“ã‚ã‚れã°ã‚³ãƒ¡ãƒ³ãƒˆæ¬„ã§æ•™ãˆã¦ãã ã•ã„ã¾ã—。
gruntã®ä½¿ã„æ–¹ã¨ã€ã‚ã¨ï¼ˆ .querySelectorAll() ãŒã‚ã‚‹ã®ã«ï¼‰SizzleãŒä½•æ•…å¿…è¦ãªã®ã‹ã€ã¦ãªäº‹ã‚’è¿‘ã„ã†ã¡ã«è¨˜äº‹ã§ããŸã‚‰ãªãƒ¼æ€ã£ã¦ã„ã¾ã™ã€‚乞ã†ã”期待。(å¤ä¼‘ã¿ã§å‡ºã‹ã‘ã¡ã‚ƒã†ã‘ã©ã。)
追記: Sizzleã®æ–¹ã€æ›¸ãã¾ã—ãŸã€‚
ã¨ã£ã´ã‚“ã±ã‚‰ã‚Šã®ã·ã†ã€‚
追記
- 削除ã€å‰Šé™¤ã‚¢ãƒŠã‚¦ãƒ³ã‚¹ã®æƒ…å ±ã‚’æ›´æ–° (2012-08-18)
-
- 詳細ページ(主ã«ãƒã‚±ãƒƒãƒˆï¼‰ã¸ã®ãƒªãƒ³ã‚¯ã‚’è¿½åŠ ã€‚
- 代用ç‰ã®å‚™è€ƒã‚’è¿½åŠ ã€‚
.toggle()ã¨ã‹ç´›ã‚‰ã‚ã—ã„ã—ã。 - 削除アナウンスã«ã€
$.ajax()ã®æˆ»ã‚Šå€¤Promiseã®.success(),.error(),.complete()ã‚’è¿½åŠ ã€‚ - 削除アナウンスã®ã€ 「
$.ajax()ã®åŒæœŸã‚ªãƒ—ション{ async: false }ã€ã‚’「$.ajax()ãŒåŒæœŸ{ async: false }ã®ã¨ãã®Deferred併用ã€ã«ä¿®æ£ã€‚