IE5で動くjQueryっぽいライブラリができていました

半分ぐらいjQueryからコードを持って来たような気がしますが、IE5でもjQueryっぽく書けるライブラリができていました。正直、あんまりブラウザのチェックとかしていないので、実際に使うのは結構危険です。

とりあえず、イベントとアニメーションだけ設定した例です。

重要なこと

  • jQueryから乗り換えてもいいですか?
    • 乗り換えない方が良いと思います。
  • IE5のサポートをしたいので使っても良いですか?
    • 商業サイトならIE6からのサポートにして、jQuery使った方が良いと思います。
  • ソース見ると関数呼び出し減って、速そうなので使っても良いですか?
    • 速さを目的とするなら、uupaa.jsをオススメします。
  • 使っても良いですか?
    • 使わない方が良いと思います。

Twitterで重要なことが謙虚すぎる、つまり、目立っていないとあったので、目立つようにしました

概要

jQueryから相当コードを盗ってきています。

  • jQuery Core
    • $関数以外ほとんど実装していない。$.eachとかない。$.noConflictも$.resetになっている。
  • Selectors
    • Sizzleとは完全に違う実装。昔作った奴をほとんどそのまま流用。
  • Attributes
    • attrとvalはぱくった。class周りは関数呼び出し減らすため、違う実装。
  • Traversing、Manipulation
    • ほとんどそのまま流用した上にノーチェック。
  • CSS
    • 無駄に違う実装。opacity以外にbackground-position-xに対応している。CSS3はそのうちやりたい。widthとかoffsetはぱくった。
  • Events
    • addEventListener一つにいっぱいぶら下げるという実装は同じだけど、複数ネームスペース対応とか微妙に違う。
  • Effects
    • 違う実装の上、animate, queue, dequeue以外は実装していない。FlashのTweenとかと同じにした。けど、なんかバグっている予感。関数呼び出し少なめなので、滑らかだと信じたい。色の変化が実装されている。
  • Ajax
    • $.ajaxだけ実装。$.paramじゃなくて、$.ajax.paramだったりする。setIntervalの監視はやめて、onloadとか使っています。
  • Utilities
    • $.supportだけぱくった。他は実装すらしていない。
  • Internals
    • $.removeDataが$.data.remove。

流用とかぱくったって部分はIE5で動作するように改造した上で、という前置きがつきます。

とりあえず、jQueryがIE5をサポートするまで、ある程度メンテして自分で使っていきます!