- PR -

YAHOO UI カレンダーで、初期化後に選択日付を変更する方法

1
投稿者投稿内容
はむねこ
会議室デビュー日: 2007/11/28
投稿数: 9
投稿日時: 2008-09-18 17:46
いつもお世話になります。

現在、YAHOO UI のカレンダーライブラリを使用して
開発をしています。

カレンダー表示時の初期選択日付を指定したい場合、

cal = new YAHOO.widget.Calendar("cal","calDiv",{selected:"18/9/2008"});
cal.render();

とすると思うのですが、
この処理を、1度render();した後に、何度も繰り返しても問題無いのでしょうか?


具体的な説明をしますと、
現在、年月日のセレクトメニューとカレンダー表示用のボタンを用意しており、
この年月日セレクトメニューは、カレンダーからの日付セット以外に、
手動でも日付の変更が可能となっています。
手動で日付の変更をした後にカレンダーボタンをクリックした場合、
セレクトメニューの値を拾って、カレンダーの初期選択日付にしたいのです。

いまは、
1.ページロード時に
cal = new YAHOO.widget.Calendar("cal","calDiv",{selected:"18/9/2008"});
cal.cfg.setProperty("MONTHS_LONG", ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]);
cal.cfg.setProperty("WEEKDAYS_SHORT", ["日", "月", "火", "水", "木", "金", "土"]);
cal.selectEvent.subscribe(selectDate, cal1, true);
cal.hide();
cal.render();
とし、この段階ではカレンダーを非表示とし、

2.カレンダー表示用のボタンをクリック時にもう一度、
cal = new YAHOO.widget.Calendar("cal","calDiv",{selected:"18/9/2008"}); ←ここはセレクトメニューの値をセット
cal.cfg.setProperty("MONTHS_LONG", ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]);
cal.cfg.setProperty("WEEKDAYS_SHORT", ["日", "月", "火", "水", "木", "金", "土"]);
cal.selectEvent.subscribe(selectDate, cal1, true);
cal.hide();
cal.render();
cal.show();

としていますが、非常に行儀の悪いことをしているのような気がします。
初期日付のセットだけを、インスタンス生成と別に行う手段はないのでしょうか?

こういった処理はよくあることだとおもうのですが、
サンプルを見つけることができませんでした。

基本的な話で申し訳ないのですが、よろしくお願いいたします。
はむねこ
会議室デビュー日: 2007/11/28
投稿数: 9
投稿日時: 2008-09-19 19:32
お世話になります。

いろいろ調べていたのですが、

protocalendar.js
(http://labs.spookies.jp/demo/protocalendar/sample/calendar_usage.html)

で簡単に実現できましたので、こちらのライブラリで行くことにしました。

お騒がせ致しました。
1

スキルアップ/キャリアアップ(JOB@IT)