2014年01月15日の日記です


zepto で clone  2014-01-15 10:18:48  コンピュータ

最近忙しくて日記書いてません。


昨年末に、ちょっと新しい仕事を頼まれました。

個人で仕事をしていると、新しく頼んでいただけると言うことは非常にありがたいです。


詳細は秘密保持契約があるので書けませんが、スマホ向けのソーシャルゲームのクライアント側の作りこみの手伝いです。

要は、Javascript でいろいろ動かせばよい、ということ。




zepto というライブラリがありまして、jQuery のスマホ専用版です。


jQuery は便利なのですが、各種ブラウザの差異解消とか、ちょっと便利なセレクタとか、ちょっと便利な関数とかが多くて非常に巨大になりつつあります。

過去には jQuery のプラグイン構造を利用して、各種機能を全部プラグインに別ける…なんて話も出ていましたが、互換性の面から結局全部入りになっている様子。

(内部的には分離されていて、使う人が不要な機能を削ったりは出来るようですが)



で、zepto は jQuery セミ互換で書きなおされたもので、iPhone と Android の標準ブラウザ…つまりは、webkit だけ動けばよい、という考えになっています。非常に小さいです。


と言っても、zepto も開発が進み、徐々に大きくなりつつあります。

とはいっても jQuery よりはるかに小さいのですが、少しでも小さいのが好きな人は、最初のバージョンの zepto を使っています。




先に書いた仕事、スマホ用なので jQuery は使わず最初のバージョンの zepto で、となっていたのですが、納期をすでに過ぎているために細かなことを言っていられなくなり、必要なら jQuery でもなんでも使って良いことになっています。


僕は基本的に zepto で…とやっていたのですが、ほかの人が jQuery を読み込んでいたソースをいじっていたときに、ついうっかり clone を使ってしまいました。

clone 、非常に便利な機能ですが、zepto にはありません。というか無いことを知らずに使ってしまいました。


僕の作った部分を別のファイルでも使うことになり、コピーしたら…うごかない。

clone のためだけに非常に巨大な jQuery を呼び出すのは気が引ける。



というか、最近の zepto には clone あるんですけどね。

当初の zepto にはない。WEB の掲示板でも情報を探すと「欲しければ最近の zepto 使え」というだけで、あまり良い答えがない。


というわけで、作りました。



$.fn.clone = function(){ var ar = []; for(var i=0;i<this.length;i++){ ar[i] = this[i].cloneNode(true); } return $(ar); }


前ふり長かったけど、これが書きたかっただけだよ…

zepto 読み込んでから、clone を使うまでの間にこれを定義すれば、clone が使えるようになります。


あくまで簡易 clone です。zepto の最近のバージョンでも簡易版しかない。

jQuery の clone はオプションでいろいろあるけど、それはナシです。




同じテーマの日記(最近の一覧)

コンピュータ

関連ページ

iOS の position:fixed バグ回避方法【日記 14/01/26】

別年同日の日記

04年 ぎょうざ

10年 ポケモンスクランブル

13年 マインスイーパー

17年 あの頃のインターネット


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -