目次

jQuery 1.2.6 はEventの処理速度が2倍以上に

jQuery1.2.6のリリースノートが、ようやく公開されました。
1.2.5は1.2.4の破損コンパイル差し替え版なので、実質的には1.2.3以来の更新になります。

公式ブログによれば、今回のバージョンアップは細かなバグ修正とパフォーマンスの向上がメインのようです。
特にEventHandlingの処理は103%向上し、jQueryUIのdrag-and-dropなどはoffset関数の処理時間が向上したこととも併せて4倍以上のレスポンス向上をしているとのこと。

その他の機能追加は、以下の通りです。

.attr関数の修正

.attr()関数の実装がシンプルになり、持っていた幾つかの顕著なバグが修正されました。

.toggle関数が3つ以上の処理を引き受けられるように

toggleという処理の性格上、従来この関数は2種類の関数を引数に取ることしか出来ませんでした。
それにより、ON/OFFのような状態を交互に切り替えることが可能です。
しかし、jQuery1.2.6からは、この関数は幾つでも関数を渡すことが出来るようになっています。

$("#nuuu").toggle(
  function(){$(this).text("ヌー");},
  function(){$(this).text("ヌヌヌ");},
  function(){$(this).text("ヌヌ?");},
  function(){$(this).text("ヌーッ!");}
);

[実行結果]

ここをクリック!

.toggleおよび.one関数がunbind可能に

従来は”click”イベントをunbindすることでしか外せなかった2つの関数が、直接unbind可能になりました。

$("div").one("click", test);
$("div").unbind("click", test);
 
$("div").toggle(test, test);
$("div").unbind("click", test);

jQuery.makeArray関数が全ての値を対象に動作するように

jQuery.makeArray()関数は、従来は配列的な特徴を持つObjectのみを処理対象としていました。
今回の更新で、何が渡されても配列として返すように処理が拡張されています。

jQuery.makeArray( document.getElementsByTagName("div") );
// => [ div, div, div ]
 
jQuery.makeArray( true );
// => [ true ]
 
jQuery.makeArray();
// => []

beforeSend関数でajax呼び出しをキャンセル可能に

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");