jQuery1.8.0を使用してカスタムページングスキームを作成しました。イベントハンドラーを戻るボタンと進むボタンにバインドしています。1ページ目にあるときに戻るボタンを無効にするために、.off()関数を使用してバインディングを無効にしています。ページを開くときに、ボタンで.on()を呼び出して、バインディングを再度有効にします。イベントバインディングのオン/オフ状態を3回変更すると、問題が発生します。その後、イベントは発生しなくなります。
私のコードの簡略版は次のとおりです。これは私の問題を説明します。
これがイベントです。戻るボタンのIDはprevPageLinkです。
$("#prevPageLink").click( function() {
// Decrement the current page
global_currentPage--;
// Check to see if first or last page clicked
handlePaginationButtonState();
// Decrement the results indicies
startResultsIndex -= global_totalResultsPerPage;
endResultsIndex = startResultsIndex + global_totalResultsPerPage - 1;
getNextResults();
});
関数handlePaginationButtonStateは、戻るボタンと進むボタンのオンとオフを切り替える作業を行います。
function handlePaginationButtonState() {
if (global_currentPage == 1) {
$("#prevPageLink").parent().attr('class', 'disabled');
$("#prevPageLink").off('click');
} else {
$("#prevPageLink").parent().attr('class', 'enabled');
$("#prevPageLink").on('click');
} // the rest of this function takes care of the numbered and right page buttons
したがって、Webアプリが最初に結果を返すときに、最初の10個の結果が読み込まれます。私が次のことをした場合:
- 次のページ(2ページへ)-バインディングがオンになっています
- 前のページ(1ページに戻る)-バインディングがオフになっています
- 次のページ(2ページへ)-入札がオンになりました
前のページに戻ることができません。1ページに戻ります。prePageLinkボタンが応答しなくなりました。次のページボタンと結果リストの最後、および番号付きのページボタンを使用してこれをテストしました。.on()または.off()関数を使用してバインディングがオンまたはオフになっている場合、バインディングはイベントに応答しなくなります。
何か案は?私は完全に困惑しています。