昨日jQuery1.6ãŒå…¬é–‹ã•れãŸã®ã§ã€ãã®å†…容をã¾ã¨ã‚ã¦ã¿ã¾ã—ãŸã€‚
ã ã„ãŸã„原文ã«ãã£ã¦ã¾ã™ãŒã€ç¿»è¨³ã§ã¯ã‚りã¾ã›ã‚“。
追記 : data()ã®æ‰±ã„ãŒèª¤ã£ã¦ã„ãŸã®ã§ä¿®æ£ã—ã¾ã—ãŸã€‚ã‚ーをã‚ャメルケースã«ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã¨ã—ã¦ã„ã¾ã—ãŸãŒã€å¼•数を与ãˆãšã«ãƒžãƒƒãƒ—ã‚’å¾—ãŸå ´åˆã®è©±ã§ã€å¼•æ•°ã«ã‚ーを与ãˆã¦å€‹åˆ¥ã«å–å¾—ã™ã‚‹å ´åˆã¯éŽåŽ»ã®ã‚³ãƒ¼ãƒ‰ã¨äº’æ›æ€§ãŒã‚りã¾ã™ã€‚thanks @GeckoTang !(23:11)
変更点
æ—¢å˜ã‚³ãƒ¼ãƒ‰ã«å½±éŸ¿ãŒã‚る変更ãŒã„ãã¤ã‹ã‚りã¾ã™ã€‚
data属性ã®è‡ªå‹•マッピング
ãƒã‚¤ãƒ•ン “-” ã‚’å«ã‚€åå‰ã®ã¨ãã€$element.data()ã«å¼•数を与ãˆãšã«å¾—ãŸãƒžãƒƒãƒ—ã®ã‚ーã¯ã‚ャメルケースã«å¤‰æ›ã•れるよã†ã«ãªã‚Šã¾ã—ãŸã€‚
var $div = $('<div data-abc-xyz="123" />');
var data = $div().data();
alert(data['abc-xyz']); // undefined
alert(data['abcXyz']); // 123
引数ã«ã‚ーを与ãˆã‚‹éš›ã¯ã‚ャメルケースã«ã—ãªãã¦ã‚‚ã€ã¡ã‚ƒã‚“ã¨å‹•ãよã†ã§ã™ã€‚
- サンプル : jQuery1.6ã§ã®$element.data()ã®æ‰±ã„
- サンプル : jQuery1.5ã ã¨ï¼Ÿ
prop(), removeProp()ã¨attr()
DOMオブジェクトã®ãƒ—ãƒãƒ‘ティã®ã‚¢ã‚¯ã‚»ã‚µãŒç”¨æ„ã•れã€å±žæ€§ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã¨åˆ†é›¢ã•れã¾ã—ãŸã€‚ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã®checkedã®æ‰±ã„ãªã©ã«å¤§ããªå½±éŸ¿ãŒã‚りãã†ã§ã™ã€‚(ã¨ã„ã£ã¦ã‚‚attr()ã‚’prop()ã«ã™ã‚‹ã ã‘ã§ã™ãŒã€‚)
追記 : ã“ã®å¤‰æ›´ã¯æ¬¡ã®1.6.1ã§æ’¤å›žã•れã¾ã—ãŸã€‚1.6.1ã§ã‚れã°ã€æ—¢å˜ã‚³ãƒ¼ãƒ‰ã®ä¿®æ£ã¯ä¸è¦ã§ã™ã€‚記事をã”覧ãã ã•ã„。 (05/20)
attr()ã¯åˆ©ç”¨è€…ã®æ“作ã«ã‚ˆã‚‹ãƒã‚§ãƒƒã‚¯on/offã¨ã¯é€£å‹•ã›ãšã€ç´”粋ã«HTMLã«è¨˜è¿°ã•れãŸchecked属性ã®å€¤ã‚’è¿”ã™ã‚ˆã†ã«ãªã‚Šã¾ã—ãŸã€‚
- サンプル : jQuery1.6ã®$checkbox.attr(‘checked’)ã«ã¤ã„ã¦
ã¾ãŸremoveProp()ã®æ–¹ã¯æ‰±ã„ã«æ°—ã‚’ã¤ã‘ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚è¦ã¯ãƒ—ãƒãƒ‘ティをdeleteã™ã‚‹ã®ã§ã™ãŒã€ã“ã®éš›ã«ã‚¢ã‚¯ã‚»ã‚µã‚‚消ãˆã¦ã—ã¾ã†ãŸã‚ã€DOMãŒï¼ˆï¼Ÿï¼‰ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§æŒã£ã¦ã„るプãƒãƒ‘ティを消ã™ã¨ã€ãã®å¾Œæ£å¸¸ã«å‹•作ã—ãªããªã£ã¦ã—ã¾ã†å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã®ãƒã‚§ãƒƒã‚¯ã‚’外ã™ã®ã«ã€çµ¶å¯¾ã«$checkbox.removeProp(‘checked’)ã¨ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。
- サンプル : $checkbox.removeProp(‘checked’)ã¯é§„ç›®
Attributes
パフォーマンス改善
prop(), removeProp(), attr()
å‰è¿°ã®ã¨ãŠã‚Šã€‚
真å½å€¤
ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚„セレクトボックスãªã©ã®on/offã‚’attr()ã¸true, falseを与ãˆã‚‹äº‹ã§å¯èƒ½ã«ãªã£ãŸãã†ã§ã™ã€‚(ã‚れã€ã“れå‰ã‹ã‚‰ã‚りã¾ã—ãŸã‚ˆã?)
$('#checkbox').attr('checked', true); // ãƒã‚§ãƒƒã‚¯ã‚’付ã‘ã‚‹
$('#checkbox').attr('checked', false); // ãƒã‚§ãƒƒã‚¯ã‚’外ã™
attr(), val()ã®æ‹¡å¼µ
属性値や入力値をå–å¾—ã€è¨å®šã—ãŸéš›ã®ãƒ•ックãŒè¿½åŠ ã•れã¾ã—ãŸã€‚ã“れã¯å¼·åŠ›ã§ã™ã。
ãŸã ã—æ³¨æ„点ãŒäºŒã¤ã‚ã£ã¦ã€ã¾ãšjQueryを介ã•ãªã„方法ã§å¤‰æ›´ã•れãŸå ´åˆã¯å応ã—ãªã„事。もã†ä¸€ã¤ã¯è¦ç´ ã”ã¨ã®ãƒ•ックã¯ã§ããªã„ã¨ã„ã†äº‹ã§ã™ã€‚å¿…è¦ã«å¿œã˜ã¦è‡ªå‰ã§è¦ç´ 判æ–を実装ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã。
属性値ã®å ´åˆã€ãƒžãƒƒãƒ—jQuery.attrHooksã«å±žæ€§åã‚’ã‚ーã¨ã—ãŸã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’è¿½åŠ ã—ã¾ã™ã€‚オブジェクトã«ã¯å–得時ã«å‘¼ã°ã‚Œã‚‹getã¨ã€è¨å®šæ™‚ã«å‘¼ã°ã‚Œã‚‹setã¨ã‚’与ãˆã¾ã™ã€‚
<a href="#">Link</a>
jQuery.attrHooks.href = {
get: function(elem, value) {
},
set: function(elem, value) {
}
};
入力値ã®å ´åˆã¯typeã‚’è¨å®šã—ã¾ã™ã€‚
<input type="text" name="hoge" value="" />
jQuery.valHooks.text = {
get: function(elem, value) {
},
set: function(elem, value) {
}
};
Core
jQuery.map( Object )
今ã¾ã§ã¯é…列ã ã‘ã§ã—ãŸãŒã€1.6ã‹ã‚‰ã¯é€£æƒ³é…列も使ãˆã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã—ãŸã€‚
var map = { key1: 'hoge', key2: 'fuga' };
var map2 = $.map(map, function(value, key) {
return value.toUpperCase();
});
- サンプル : jQuery1.6ã®$.map()ã¯é€£æƒ³é…列ãŒä½¿ãˆã‚‹
CSS
相対値
è¨å®šå€¤ã‚’"+=10px"ã®ã‚ˆã†ã«ã™ã‚‹äº‹ã§ã€ç¾åœ¨ã®å€¤ã‹ã‚‰ã®ç›¸å¯¾çš„ãªå€¤ã‚’è¨å®šã§ãるよã†ã«ãªã‚Šã¾ã—ãŸã€‚
(試ã—ã¦ã¿ãŸã‚‰å‹•ãã¾ã›ã‚“ã§ã—ãŸâ€¦â€¦ã€‚)
Data
パフォーマンス改善
Deferreds
Deffered自体ãŒã‚ˆãã‚ã‹ã£ã¦ãªã„ã®ã§çœç•¥ã—ã¾ã™ã€‚ 追記 : Takazudoã•ã‚“ã®ãƒ–ãƒã‚°ã«Defferedã®è§£èª¬ãŒã‚ã‚‹ã®ã§ã€ãƒªãƒ³ã‚¯ã‚’掲載ã—ã¦ãŠãã¾ã™ã€‚ãªãŠDeffered自体ã¯jQuery1.5ã§è¿½åŠ ã•ã‚ŒãŸæ©Ÿèƒ½ã§ã™ã€‚ : jQuery.Deferredã£ã¦ä½• – Takazudo hamalog (05/07)
Effects
アニメーションã®åŒæœŸ
複数ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’è¨å®šã—ãŸã¨ãã€å®Œå…¨ã«ä¸€è‡´ã—ãŸé–“éš”ã§å‹•作ã™ã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã—ãŸã€‚
よりスムーズãªã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³
requestAnimationFrame()を使ã£ã¦ã€ä»Šã¾ã§ã‚ˆã‚Šã‚¹ãƒ ãƒ¼ã‚ºãªæç”»ãŒè¡Œãˆã‚‹ã‚ˆã†ã«ãªã£ãŸãã†ã§ã™ã€‚対象ã¯Firefoxã¨Chromeã ã‘ã‹ãªï¼Ÿ
promise()
1.5ã§ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯ã‚’柔軟ã«ç®¡ç†ã™ã‚‹Deferredã‚„deferred.promise()ãŒè¿½åŠ ã•れã¾ã—ãŸãŒã€ãれã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ç‰ˆãŒã§ãã¾ã—ãŸã€‚……ã¨ã„ã†äº‹ã§ã—ょã†ã‹ï¼Ÿã€€ã‚ã¾ã‚ŠDefferedãŒã‚ã‹ã£ã¦ã„ã¾ã›ã‚“。
Event
パフォーマンス改善
Dataã®æ–¹ã®æ”¹å–„ã«ã‚ˆã‚Šã€ã“ã¡ã‚‰ã‚‚改良ã•れãŸã‚ˆã†ã§ã™ã€‚
jQuery.holdReady()
$(document).ready()ã®ç™ºç«ã‚’抑制ã™ã‚‹ä»•組ã¿ãŒã§ãã¾ã—ãŸã€‚事å‰ã«ä»–ã®å‡¦ç†ã‚‚ã‚„ã£ã¦ã‹ã‚‰å…¨ä½“ã®å‹•ãã‚’å§‹ã‚ãŸã„å ´åˆã«ä½¿ãˆãã†ã§ã™ã。
Selector
:focusセレクター
セレクターã§:focusãŒä½¿ãˆã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã—ãŸã€‚$(':focus')ã§ç¾åœ¨ãƒ•ォーカスをæŒã£ã¦ã„ã‚‹è¦ç´ を検索ã™ã‚‹äº‹ãŒã§ãã¾ã™ã€‚
Traversing
find(), closest(), is()ã®å¼•æ•°ã«è¦ç´ を渡ã›ã‚‹ã‚ˆã†ã«
ã“れ便利ã§ã™ã。特ã«is()ãŒè‰¯ã„ã§ã™ã€‚
if ($thisElement.is($thatElement)) {
alert('This is That!');
}
ダウンãƒãƒ¼ãƒ‰
ファイルã¯ä»¥ä¸‹ã‹ã‚‰:
ã“ã®è¨˜äº‹ã‚’書ã„ã¦ã„る時点ã§ã¯ã€ã¾ã Googleã®CDNã«ã¯ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã•れã¦ã„ãªã„よã†ã§ã™ã€‚Microsoftã®æ–¹ã¯å…¬é–‹æ¸ˆã¿ãªã®ã§ã€ãã¡ã‚‰ã‚’使ãˆã°è‰¯ã„ã§ã™ã。



