元のタイトルですが、投稿するには長すぎます:「ASP.NETMVC 4、Razor、JQuery、JQueryMobile、Mobiscrollの問題-orientationchangeとアクセスアドレスバーが一部のモバイルブラウザーをクラッシュさせます。一部の電話では、スクローラーの幅と高さを変更しても機能しません。」
クラッシュの問題はAndroid2.1で発生します。iPhone、HTC EVO 4G LTE、その他のHTCでは発生しません。
スクローラーの幅と高さを変更しても、HTCでは機能しません。横向きに変更すると、スクローラーは縦向きと同じサイズになります。縦向きに戻すと、スクローラーは横向きのはずのサイズになります。
JQuery/Mobiscrollのコードは次のとおりです。
function createDatePicker(selector){
if($("#input_date_1").scroller('isDisabled') != 'undefined'){
var scrollWidth = ($("div[id='main_content']").width()) / 4;
var scrollHeight = scrollWidth / 2.5;
$("#input_" + selector).scroller({
preset: 'date',
minDate: new Date(2000, 0, 1),
maxDate: new Date(2020, 11, 31),
theme: 'android',
display: 'inline',
mode: 'scroller',
dateOrder: 'mmddyy',
width: scrollWidth,
height: scrollHeight,
onChange: function (valueText, inst) {
var lbl = $("#lbl_" + selector);
var date = $("#input_" + selector).scroller('getDate');
lbl.text(date.toDateString());
}
});
}
function setDatePickerWidthAndHeight(){
var scrollWidth = ($("div[id='main_content']").width()) / 4;
var scrollHeight = scrollWidth / 2.5;
var selectorBase1 = "date_1";
$("#input_" + selectorBase1).eq(0).scroller('option', 'width', scrollWidth);
$("#input_" + selectorBase1).eq(0).scroller('option', 'height', scrollHeight);
}
$(function () {
createDatePicker('date_1');
$(window).bind('orientationchange', function (event) {
setTimeout(setDatePickerWidthAndHeight(),100);
});
});
これらのスクリプトを、ページの下部に表示される@sectionスクリプト{}に含めています(それが適切かどうかはわかりません)。
どんな助けでもいただければ幸いです。