jquery mobile と html5 を使用してモバイル アプリケーションを開発しています。アプリケーションの 1 つの部分はイベント カレンダーであり、次のボタンと前のボタンをクリックして月を繰り返すことができます。
反復機能は問題なく動作しますが、月が変更された場合、ボタンの内容と機能を更新して、新しい月の前のボタンと次のボタンを表示する必要があります。
if (month == 11) {
var next_month = '<input id="next" onclick = "callMonth(' + 0 + ',' + (year + 1)
+ ');" type="button" data-icon="arrow-r" data-inline="true" value="'
+ monthNames[0] + ' ' + (year + 1) + '" />';
} else {
var next_month = '<input id="next" onclick="callMonth(' + (month + 1) + ','
+ year + ');" type="button" data-icon="arrow-r" data-inline="true" value="'
+ monthNames[month + 1] + ' ' + (year) + '" />';
}
// previous month
if (month == 0) {
var prev_month = '<input id="next" onclick = "callMonth(' + 11 + ','
+ (year - 1) + ');" type="button" data-icon="arrow-l" data-inline="true" value="'
+ monthNames[11] + ' ' + (year - 1) + '" />';
} else {
var prev_month = '<input id="next" onclick="callMonth(' + (month - 1) + ','
+ year + ');" type="button" data-icon="arrow-l" data-inline="true" value="'
+ monthNames[month - 1] + ' ' + (year) + '" />';
}
onclick
jQuery モバイル関数$("#next").click()
が if-else-block 内で動作しないため、入力ボタンのパラメーターを使用しています。callMonth(y,m)
関数自体がこのコードを呼び出すことも重要です。上記のコードは、関数calendarWidget()
によって呼び出される関数の一部ですcallMonth()
。したがって、onclick
パラメーター関数は、ボタンを再度作成する関数をトリガーします。
今私の問題に:ボタンが初めて生成されたとき、それは正しいスタイル(jQueryモバイル、次/前のアイコン)を持っています。ボタンをクリックすると、前の月か次の月かに関係なく、次の月または前の月がすべての内容とともに正しく表示されます。問題は、ボタンのスタイルがブラウザーのデフォルトにリセットされることです。つまり、jQuery モバイル UI もアイコンもありません。前に示したように、機能の更新は問題なく機能します。つまり、月単位で反復を続けることが可能です。
ボタンのスタイルが変更されないようにするにはどうすればよいですか? ボタンの機能をどのように実装すればよいですか (ページをリロードせずに?)
jQuery モバイルと英語の経験不足で申し訳ありません。このエラーを文書化するソースが見つかりませんでした。おそらく問題はの使用ですがonclick
、if-else-statement 内でクリック イベント トリガーを定義することはできません。この問題を解決するためのヒント、ヘルプ、または手がかりをいただければ幸いです。
よろしくお願いします!