Windows IE webview で実行される PhoneGap アプリケーションを開発しています。アプリケーションでは、下記の DatetimePicker プラグインを使用しています: jQuery DateTimePicker Plugin ( http://umcdatetimepicker.codeplex.com )
このプラグインはすべての Mac で完全に動作しますが、onClose 関数が期待どおりに動作するため、Windows WebView では奇妙な動作をします。
カレンダー画像をクリックするとカレンダーが表示されます。画面上のどこかをクリックすると、カレンダーが閉じます。ただし、非表示になり、カレンダーの終了時にイベントが発生しません。他のロジックで起動するテスト用のアラートを設定しました。メインのプラグイン アクションを上書きする独自の onSelect および onClose イベントを作成しました。
上記のように、カレンダーは非表示になりますが、イベントは呼び出されません。カレンダーをクリックするとカレンダーを非表示にした後、onCloseイベントが発生し、テスト目的で使用されるアラートがスローされます。これは、カレンダー画像でのみ onClose イベントを正しく起動できることを意味します。どちらのイベントも IE7/8 ブラウザーでは完全に機能しますが、onClose イベントは IE Webview では機能しません。複数のことを試しましたが、うまくいきませんでした。これが私のコードです
$("#datetimepicker").datetimepicker({
onSelect:function($this){
//alert($this);
alert("i am selected");
$(this).data('datepicker').inline = true;
var hour = $('.ui-datepicker .dateimepicker-hour').val();
//alert (hour);
var minuts = $('.ui-datepicker .dateimepicker-minuts').val();
//alert (minuts);
var second = $('.ui-datepicker .dateimepicker-second').val();//alert (second);
var time = hour + ":" + minuts + ":" + second;
//alert (time);
//alert($this +" "+ time);
$("#datetimepicker").attr("value",$this +" "+ time);
},
onClose: function() {
alert("its on close");
var currentsetdate = $(this).val();
if(currentsetdate == ""){}
else{
//alert (currentsetdate);
var onlydate = currentsetdate.split(' ')[0];
//alert (onlydate);
$(this).data('datepicker').inline = false;
var hour = $('.ui-datepicker .dateimepicker-hour').val();
//alert (hour);
var minuts = $('.ui-datepicker .dateimepicker-minuts').val();
//alert (minuts);
var second = $('.ui-datepicker .dateimepicker-second').val();//alert (second);
var time = hour + ":" + minuts + ":" + second;
//alert (time);
$("#datetimepicker").attr("value",onlydate +" "+ time);
}}
制限コードについて考えている人はいますか。誰かが解決策を得るのを手伝ってくれると良いでしょう。カレンダーの onClose イベントを本体のどこにでもバインドすることは可能ですか?
よろしく、ジテンドラ