配列 $arr をCakePHPからjQuery に渡すには
Controllerにて
$this->set('arr', $arr);
Viewにて(※ ViewはHTMLでlayoutしているとして)
$arr = json_encode($arr);
$this->addScript($html->scriptBlock('
var arr = '.$arr.';
$.each(arr,function(k,v){
//お好きに
});
で良いらしい。json_encode()を思い出せなかったのでメモ。
あ、それか
Controllerにて
$this->set('arr', json_encode($arr));
でも。
最近書いたjQueryのメモです。
配置された複数の画像をランダムにパラパラ表示する、というもの。
参考にさせていただいた
ひとつめは、jQueryのがらぽん。
jQuery: Shuffle Plugin
配列にも要素にも適応できるのが素敵。
ふたつめは、jQuery 1.4のdelayについて。
jQueryメモ delayメソッドでずらしてみる – lovelog || Loveness×Zeroless
んでこんなのができました。
ul.images 以下に9枚の画像があるケース。
var arr = [1,2,3,4,5,6,7,8,9];
arr = $.shuffle(arr);//Shuffle Pluginを使ってシャッフル
jQuery(document).bind("ready", function(){
$('ul.images li').hide();
$(arr).each(function(k,n){
var num = k * 500;
$("ul.images li:nth-child(" + n + ")").delay(num).fadeIn(800);
});
});
って、delay超便利!jQuery1.4で使えます。
simpleCart(js)をWORDPRESSに突っ込んで
簡単なショッピングサイトを作成したりした時に気付いたバグ。
バグと言っていいのか分からないけれど
公式サイトのデモでも同じ現象が起るのでWORDPRESS特有のものという訳では無さそう。(Firefox 3 と IE7 で確認。)
追記@2010/11/18
コメント頂いていますが、Javascript でブラウザ判定 IE 6,7,8 と その他のブラウザ | perlとMysqlと鯖管メモ他ぁにて改良してくださっているのでそちらをご参照くださいませ。(適当コードで申し訳ありませんでした・・・)
IE8になっても表示が微妙なケースもたまにあったりするので
IE6〜8の判別を調べてみた。
結果、これが(ちゃんと動くなら)一番楽チンなのかな?
(※ まだちゃんと動作チェックしてないです。)
if (typeof document.body.style.maxHeight != "undefined") {
if (document.documentMode >= 8) {
}else {
// IE8
}else {
//IE7, IE8(IE7 mode)
}
} else {
// IE6, older browsers
}
IE8のIE7モードって、IE7で動くんだから判別する必要無いよね、と思ったんだがどうだろう。
今のところ、IE8だけに何かしなきゃいけない状況に陥ったことは無いので(IE6になら嫌ってほどありますが)、いまいちこのモードの話は身につまされないのです。
とか言ってると足元すくわれるかなあ。
参照: