ajax (ajax html コンテンツ ローダー) を使用して html コンテンツをロードできるカスタム スクリプトを作成します。このスクリプトは、要素のクリックで開始されます。
このスクリプトは、クリック時にハードコードされた要素で正常に動作します。
ただし、私のhtmlでは、クリックのおかげで多くの要素を追加しています。
この新しく追加された要素は、私の ajax HTML コンテンツ ローダーを介してコンテンツを読み込むことができません。
新しく追加された要素で動作させるには、ajax スクリプトをコールバックする必要があります。
コールバックを可能にするスクリプトの書き方がわかりません。
ここに私のスクリプト:
$(function ajax() {
function ajaxify(file) {
$.get(file, function (data) {
var folderContent = $("#bottom-container");
$("#prev-ajax").fadeOut(0);
$("#next-ajax").fadeOut(0);
folderContent.slideToggle(1000,"easeOutCirc", function () {;
$("#loading-bloc").show();
$("#loading-text").fadeIn(500);
$("#ajaxify_container").hide( function () {
$("#loading-bloc").everyTime(10, function(){
$("#loading-bloc").animate({left:"100%"}, 1000).animate({left:"0%"}, 1000);
});
$("#ajaxify_container").show( function () {
folderContent.slideToggle(1000,"easeOutCirc");
$("#loading-bloc").hide();
$("#loading-text").fadeOut(500);
$("#prev-ajax").fadeIn(300);
$("#next-ajax").fadeIn(300);
});
});
});
});
}
$('.link:not("#prev-ajax,#next-ajax")').on("click",function (e) {
e.preventDefault();
var functionAlink = $(this);
var functionBlink = $(this);
var $parent= functionAlink.parents('.element');
var prev = $parent.prev().find('.link').attr('href');
var next = $parent.next().find('.link').attr('href');
if (typeof prev != 'undefined' ) {
$("#prev-ajax").attr('href', prev);
$("#prev-ajax").animate({opacity: 1}, 300);
}else {
$("#prev-ajax").removeAttr("href");
$("#prev-ajax").animate({opacity: 0.4}, 300);
}
if (typeof next != 'undefined' ) {
$("#next-ajax").attr('href', next);
$("#next-ajax").animate({opacity: 1}, 300);
}else {
$("#next-ajax").removeAttr("href");
$("#next-ajax").animate({opacity: 0.4}, 300);
}
var link = functionBlink;
if (!link.hasClass('current')) {
$('.link').removeClass('current');
link.addClass('current');
ajaxify(link.attr('href'));
window.location.hash = link.attr("href");
}
return false;
});
$("#prev-ajax,#next-ajax").on("click",function (e) {
e.preventDefault();
var functionAlink = $(this);
var functionBlink = $(this);
//$("#prev-ajax").fadeOut(0);
//$("#next-ajax").fadeOut(0);
ajaxify(functionAlink.attr('href'));
window.location.hash = functionAlink.attr("href");
$('.link').removeClass('current');
var href = functionBlink.attr('href');
var link = $(".link[href*= '" + href + "']:not(#prev-ajax, #next-ajax)");
link.addClass('current');
var $parent = link.parents('.element');
var prev = $parent.prev().find('.link').attr('href');
var next = $parent.next().find('.link').attr('href');
if (typeof prev != 'undefined' ) {
$("#prev-ajax").attr('href', prev);
$("#prev-ajax").animate({opacity: 1}, 300);
}else {
$("#prev-ajax").removeAttr("href");
$("#prev-ajax").animate({opacity: 0.4}, 300);
}
if (typeof next != 'undefined' ) {
$("#next-ajax").attr('href', next);
$("#next-ajax").animate({opacity: 1}, 300);
}else {
$("#next-ajax").removeAttr("href");
$("#next-ajax").animate({opacity: 0.4}, 300);
}
});
});
$(function(){
$(window).hashchange( function(){
var hash = window.location.hash;
var hash = location.hash.replace("#","");
if(window.location.hash) {
$.get(hash, function (data) {
$('#LoadingImage').show();
$("#ajaxify_container").fadeOut(1500, function () {
$(this).html(data).fadeIn(1500, function () {
$('#LoadingImage').hide();
});
});
});
} else {
// Fragment doesn't exist
}
})
$(window).hashchange();
});
私の英語でごめんなさい、私はフランス人です
ロイク