結果の詳細を含む複数のブロックを表示するページがあります。各ブロック内には<a>
、thickbox jQuery プラグインが添付されたタグがいくつかあります: class="thickbox"
アンパーサント タグの 1 種類の例を次に示します。
<a class="thickbox" title="Please Sign In" href="userloginredir.php?height=220&width=350&deal=3">
ページに表示される結果が多すぎるため、jQuery ページネーションをページに追加すると問題が発生します。内部に結果を含む div コンポーネントは、ajax load() イベントによって更新されます。
以下は、ページネーション スクリプトです。
$(document).ready(function(){
//References
var pages = $("#menu_deals li");
var loading = $("#loading_deals");
var content = $("#content_deals");
//show loading bar
function showLoading(){
loading
.css({visibility:"visible"})
.css({opacity:"1"})
.css({display:"block"})
;
}
//hide loading bar
function hideLoading(){
loading.fadeTo(1000, 0);
};
//Manage click events
pages.live('click',function(){
//show the loading bar
showLoading();
//Highlight current page number
pages.css({'background-color' : ''});
$(this).css({'background-color' : 'yellow'});
//Load content
var pageNum = this.id;
var targetUrl = "ajax_search_results.php?page=" + pageNum + "&" + $("#dealsForm").serialize() + " #content_d";
content.load(targetUrl, hideLoading);
});
//default - 1st page
$("#1").css({'background-color' : 'yellow'});
var targetUrl = "ajax_search_results.php?page=1&" + $("#dealsForm").serialize() + " #content_d";
showLoading();
content.load(targetUrl, hideLoading);
});
ページネーション(上記のコード)を追加すると、thickboxイベントが認識されなくなり、ログインフォームを含むウィンドウをポップアウトする代わりに、新しいページで結果が開きます(通常のリンクをクリックするように動作します)私のjQueryの知識からこれドキュメントの準備ができた後にコンテンツが更新されるため、DOM でコンポーネントが定義されていないことを意味します。
load イベントを次のようなものにバインドしようとしています。
content.bind('load', ???);
しかし、load イベントをバインドするときに、load パラメータ、targetUrl、およびコールバック関数 hideLoading を渡す方法がわかりません。
この問題で私を助けてください、それはすでに私に許されるよりも多くの時間を費やしました.