2010年3月6日土曜日

TSUTAYA DISCASの回転率

僕は以前(2年くらい前かな)からTSUTAYA DISCASサービスを利用して、
DVDのレンタルをしています。

DVDのレンタルは・・・札幌にいた頃は、1枚100円レンタルの日に5枚くらいを借りていたのですが、
こっちに来た当初は、レンタル価格が思ったよりも高く、レンタル屋に行くにも電車に乗っていくから、あまり安くならない事にも気づき、行く事はなかったのですが・・・

DISCASサービスに出会ってからは、よく利用するようになりました。


このサービス、月2000円なのですが、貧乏症の私は1枚100円の単価は上げたくない。


そうすると、月に20枚弱のDVDを借りるのが目安。

サービスとしては、1回に2枚借りる事になるので、月に10回転。

そうすると、3日で1回転させる事になるのですが、
これがなかなか難しい。

郵便事情と社会人的な事情を考えると、最速で4日が限度。
一番うまくいったときでも16回転が限度でした。

ですが、最近はどうにも3回転くらいがやっとです。

なんか損した気分。

2010年3月4日木曜日

jqueryのダイアログ上からdatepickerを実行する。

また、jqueryでプチはまりました。

jquery uiのdialogで表示されたダイアログ上にフォームを配置して、
そのフォーム上からデータのやり取りをしようと、パーツを配置していったのですが・・・datepickerを配置してもどうにも表示されない。

firebugでちょっと調べたところ、
モーダルダイアログの背景レイヤーにz-indexの1000、
ダイアログ自体にz-indexの1001が設定されておりました。

datepicker自体にはz-indexの指定が無いため、
必然的に発生元となるダイアログよりも下層のレイヤーとなる為に表示されなかった模様です。

ネット調べてみると、dateickerに指定されているスタイルシートクラス「.ui-datepicker」にz-indexをつけて、非常に大きな値を設定する方法が紹介されていましたが、

私の性分として、その時々で決めた「決めうち数値」のルールは、
後から忘れてしまう事が多いので、あまり使いたく有りません。

なので簡単なスクリプトを書くです。
$('#date-input').datepicker({
  beforeShow: function(input, inst){
    $('#ui-datepicker-div')
      .css(
        'z-index',
        parseInt($($(input).parents('.ui-dialog').get(0)).css('z-index')) + 1
      );
  }
});


日本語で略して書くと
「datepickerが配置されているinputアイテムの上位にあるdialogのz-indexの値を調べて、+1した状態で表示する。」です。

dialogの上からdialogを表示してその上にdatepickerを配置する場合も一応ok。
できない場合は、「parents('.ui-dialog').get(0)」のgetの引数を変えてみるといいかも。
「0」指定で、一つ上のdialogが引っ張って来れるはず。

あと、「css('z-index')」で引っ張ってきた値は文字列なので、数値化する必要がある。