jQuery1.2.6のリリースノートが、ようやく公開されました。
1.2.5は1.2.4の破損コンパイル差し替え版なので、実質的には1.2.3以来の更新になります。
公式ブログによれば、今回のバージョンアップは細かなバグ修正とパフォーマンスの向上がメインのようです。
特にEventHandlingの処理は103%向上し、jQueryUIのdrag-and-dropなどはoffset関数の処理時間が向上したこととも併せて4倍以上のレスポンス向上をしているとのこと。
その他の機能追加は、以下の通りです。
.attr()関数の実装がシンプルになり、持っていた幾つかの顕著なバグが修正されました。
toggleという処理の性格上、従来この関数は2種類の関数を引数に取ることしか出来ませんでした。
それにより、ON/OFFのような状態を交互に切り替えることが可能です。
しかし、jQuery1.2.6からは、この関数は幾つでも関数を渡すことが出来るようになっています。
$("#nuuu").toggle( function(){$(this).text("ヌー");}, function(){$(this).text("ヌヌヌ");}, function(){$(this).text("ヌヌ?");}, function(){$(this).text("ヌーッ!");} );
[実行結果]
従来は”click”イベントをunbindすることでしか外せなかった2つの関数が、直接unbind可能になりました。
$("div").one("click", test); $("div").unbind("click", test); $("div").toggle(test, test); $("div").unbind("click", test);
jQuery.makeArray()関数は、従来は配列的な特徴を持つObjectのみを処理対象としていました。
今回の更新で、何が渡されても配列として返すように処理が拡張されています。
jQuery.makeArray( document.getElementsByTagName("div") ); // => [ div, div, div ] jQuery.makeArray( true ); // => [ true ] jQuery.makeArray(); // => []
ajax関数のオプションとしてbeforeSend関数を設定すると、その戻り値でajax呼び出しの実行をキャンセルすることが出来るようになります。
$.ajax({ beforeSend: function(){ return $("#input").val() == ""; }, url: "test.php" });
validationの処理などに非常に便利。
jQueryで用いられるアニメーション処理は、多くの場面で処理速度を指定できます。
そしてそれらの殆どは、ミリ秒単位もしくは文字列(“slow”, “fast”, “default”など)で指定することが可能です。
今回のバージョンアップから、これらの速度を示す名前に独自のものをつけたり、既存の値を変更したり出来るようになりました。
jQuery.fx.speeds.slow = 1000; $("#test").slideDown("slow"); jQuery.fx.speeds.normal = 900; jQuery.fx.speeds.char = 300; $(".zaku").move("char");