比較的新しいjQueryユーザー(パスで使用しましたが、今は本当に理解しようとしています)。
ajax を使用して独自の jQuery ページネーションを作成しようとしていますが、これまでのところ私のコードは次のようになっています。
$(document).ready(function(){
$('.pigs ul.pigspagination li a').live('click', function(e) {
e.preventDefault();
var url = $(this).attr('href');
if(url.match('^http')){
return true;
} else {
var element = $(this).closest(".pigs");
$(element).append('<div id="loading"><img alt="Loading..." src="loading.gif" /></div>');
$('#loading').fadeIn('normal');
$(element).load(url + ' ' + element);
return false;
}
});
});
コードは基本的に、「.pigs ul.pigspagination li a」をクリックすると、指定された URL から「.pigs」である親要素をロードし、URL から同じフラグメントをロードします。ただし、これは機能していないようです:
$(element).load(url + ' ' + element);
URL を読み込んでからスペースを追加してから、var element = $(this).closest(".pigs"); から参照される要素について言っていると仮定します。
なぜ私が $(element).load(url + '.pigs'); を入れられないのか疑問に思っているなら
これは、.pigs を複数回参照し、それが私が書いた php ギャラリー スクリプトであるため、自動的に参照されるためです。
html はおおよそ次のようになります。
<div class="pigs">
<ul class="pigs-gallery">
<li><a href="the link" target="_blank"></a></li>
...
</ul>
<ul class="pigspagination">
<li><a href="pagination link">< Prev</a></li>
...
<li><a href="pagination link">Next ></a></li>
</ul>
</div>
ただし、さらに多くのギャラリーが読み込まれます。
何か案は?
-------------- bfavaretto の編集 --------------- これを試してみました
var frag = $(this).closest(".pigs").attr('id');
$(element).load(url + ' #' + frag);
その吸引だけをロードしますが、すべてのコードを削除します。私の推測では、フラグがひどく渡されています。.attr('id'); 「#」ではなく、それ自体でIDを取得しますか?
誰かが興味を持っている場合のフィナーレコード:
$(document).ready(function(){
$('.pigs ul.pigspagination li a').live('click', function(e) {
e.preventDefault();
var url = $(this).attr('href');
if(url.match('^http')){
return true;
} else {
var element = $(this).closest(".pigs");
$(element).append('<div id="loading"><img alt="Loading..." src="loading.gif" /></div>');
$('#loading').fadeIn('normal');
var frag = $(this).closest(".pigs").attr('id');
$(element).load(url + ' #' + frag);
return false;
}
});
});