THE HAM MEDIA BLOG

jQuery 1.3Beta1を使ってみた

Clip to Evernote このエントリーをはてなブックマークに追加
カテゴリ:
jQuery
タグ:
jquery
javascript

jQuery

jQuery 1.3Beta1のテスト版が数日前に出ていた。
正式版は来月の中旬に出るらしい(?)のだが
その前にBeta版をちょっとだけ試してみることにした。

今回の主な変更

今回の主な変更は、Selector部分とかCSS関連の部分らしい。
Sizzle CSS Selector Engineというのが標準搭載されている。
これを搭載したことにより、速度がかなり速くなったとか?
詳しいことはまだわかっていませんが、ソースを見る限り、
Selector部分はかなり違うものになっていました。

その分、速度などではメリットが増えたのはありますが、
バグなのかコレはどうなのか?というのがいくつかあったので、
それらも含めて現時点でわかたことをまとめてみます。

たぶん増えた機能

これは増えたかな?って機能をあげてみます。

  • ・live()
  • ・die()

増えた機能であるとは思うのですが、
まだどのように使って良いのかわかっていません(汗)
実験もしてみたのですが、何がどのように動作するのか
現時点ではまったくわからない。

もっと検証してみようと思います。

たぶんなくなったもの

ソースを見る限りなくなったなって思うもの。

  • :animated
     (animatedはanimateで動作中のものに適応させるフィルター)

SelectorsのBasic Filters部分の:animated
animateしている最中の部分に適応させるためのフィルターだったのですが、
ソースを見る限り、どこにも見当たらなくなっています。

バグじゃなくて、なくなったのだろうと思います。
もしかしたら単にBeta版で入れ忘れているだけで、
正式版には入ってくるかもしれないので、
それは今後の動向次第だと思いますが、現状削除っぽい。

たぶんバグ

きっと正式リリースまでには修正されると思うのですが、
一応1.3b1で気づいたバグを列挙しておきます。

  • 1、$('a[@href^="http://"]')はエラー。"@"がダメな様子。$('a[href^="http://"]')はOK。
  • 2、$('a[@href^="http://www.hoge"]')はエラーじゃないけどそのセレクタに反映されない。
     $('a[href^="http://www."]')まではOK。ドット(.)一つ目まで通る。ドット右から通らない。
  • 3、頭から検索一致を探す(^)、$('a[href^="http://"]')は問題ないが、
     なぜか[href^="hoge"]とかはエラーじゃないけど適応されない。
  • 4、$('a[rel^="#"]')のように、"#"が入ってると適応されない。

ほかにもバグがまだまだ多くあると思われるのですが、
現時点で見つけたのはAttribute Filters部分に関するもがほとんどです。
個人的に使っている頻度が多いものだったりもするので、
結構困る事態になるかなーなんて思っています。

今のところの対処方法

バグフィックスされるかわからないので書いておきます。

1に関してはSizzleの影響らしいとか?単に@をつけなければ問題ない。

2に関してはこれが結構問題。ドット(.)より後ろがあると無効になるので、
.より後ろを含まないようにセレクタを作らなければならない。
なのでURLとか拡張子の場合は、なんとかドットを含まないように作る必要があるようだ。

例えば$('a[href$=".gif"]')が無効になってしまうので、ドットをつけないで $('a[href$="gif"]')としなければならないようだ。
これは修正されていることを願う。

3,4に関してはyuga.jsのページ内スクロールが動作しなくなったので、
原因を探っているうちにこの二つに気がついた。
"#"が入っていると適応されないし、おまけに"href^="にすると、
「http://」は適応されるのに、それ以外だと適応されない。
なぜ!?というような状態です。

このように、今回大幅な修正があったSelector部分でまだまだバグがある様子。
なので、yuga.jsのように自動的に適応させるようにしているプラグインなどは、
Firebug上でエラーもでないのに適応されないなんてことになる可能性があるので、
今後正式リリースされたら、必ずバグが起きないか
必ずチェックしてからアップデートしたほうがいいでしょう。

この記事へのコメント
セレクタに@を使うのはだいぶ前に廃止になった気がします。
XPath風の記法にすると最近のブラウザに入ってるquerySelectorAllメソッドを使って高速化できなくなるので。
Posted by お名前 at 2008年12月31日
>お名前さん
そうなのですか!?
それは知らなかったです。
情報ありがとうございます!

バグじゃなくて、もう使えないってことなんですね。
Posted by ハム at 2009年01月08日
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

トップに戻る