アンカー要素がクリックされたときにjQueryを使用してflexsliderギャラリーをロードしたいと思います。ギャラリーはdiv#slider-loaderにロードされます
問題は、HTMLが正しくロードされていることですが、この場合は.on()を使用することを読んだとしても、Javascriptは挿入された要素に影響を与えないようです。
$(document).on('click', '.cliccami' , function() {
var href = $(this).attr('href');
$('#slider-loader').load(href);
return false;
});
前もって感謝します!
-
コールバック関数を使用して、ロードが完了したときにアクションを実行します。
甘い!機能した!ただし、このようなソリューションでは、.on()イベントは役に立たなくなります。今私はこれを思いついた、そしてそれはうまくいく:
$('.cliccami').click(function() {
var href = $(this).attr('href');
var gallery_height = $('.flexslider').css('height');
$('#slider-loader').hide().fadeIn('slow', 'swing').load(href , function(){
$('.flexslider').flexslider({
animation: "slide"
});
})
return false;
});
唯一の問題は、コードの挿入が非常に分散していることです。divコンテナ「#slider-loader」に「.flexslider」の高さに応じて高さを調整させ、スムーズなアニメーションを作成したいと思います。
私がやろうとしたことは:
$(document).ready(function(){
$('#slider-loader').hide();
});
$(document).on( 'click', '.cliccami', function() {
var href = $(this).attr('href');
var gallery_height = $('.flex-viewport').css('height');
$('#slider-loader').load(href , function(){
$('.flexslider').flexslider({
animation: "slide"
});
$('#slider-loader').css('height' , gallery_height);
$('#slider-loader').slideDown(10000);
});
return false;
});
問題は、アンカー要素をクリックすると、#slider-containerがそのコンテンツを表示するslideDownを開始しますが、変数として設定して.css( ) 方法。それは数ピクセルスライドダウンし、その後突然.flexsliderの高さ全体になりました。