私の問題は少し複雑です。
私は次のコードを持っています:
$(document).ready(function() {
var hash = window.location.hash.substr(1);
var href = $('#nav li a').each(function(){
var href = $(this).attr('href');
if(hash==href.substr(0,href.length-5)){
var toLoad = hash+'.html #content';
$('#content').load(toLoad)
}
});
$('#nav li a').click(function(){
var toLoad = $(this).attr('href')+' #content';
$('#content').hide('fast',loadContent);
$('#load').remove();
$('#wrapper').append('<span id="load">LOADING...</span>');
$('#load').fadeIn('normal');
window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
function loadContent() {
$('#content').load(toLoad,'',showNewContent())
}
function showNewContent() {
$('#content').show('normal',hideLoader());
}
function hideLoader() {
$('#load').fadeOut('normal');
}
return false;
});
});
さて、最初にそれをコーディングしたのは私ではないので、それが何をするのか本当に理解できず、またそれを変更しようとしましたが、成功しませんでした。コードは「navli」リンクを選択し、AJAXの方法でページを表示します。これは、ページをリロードしないことを意味します。これは正しく行われます:)さて、ユーザーを登録するためのファンシーボックスを追加するためにやりたいことはすべてです。そのためには、次のコードを追加する必要があります。
$("a#reg").fancybox({
'hideOnContentClick': false
});
これで、コードを$ document.readyfunctionに配置するだけで、ファンシーボックスが正常に機能し、navliリンクも適切に機能します。では、どこに問題があるのでしょうか。「navli」リンクをクリックしてコンテンツをロードし、ホームリンクをもう一度クリックすると(最初のページに戻ります)、ファンシーボックスが機能しなくなります。私はそれが非常に敏感であることを知っているので、あなたはそれをよく理解していないかもしれません、それでそれを別の方法で説明させてください。'nav li'のセレクターとファンシーボックスリンクのセレクターの両方がありますが、それらを一緒に機能させるための最良の方法は何ですか?
また、誰かが私にコードが何をするのかを説明することもできます。
ありがとうございました。