これを使用して、ローディングスピナーをアクティブにします。
アラートを削除するとすぐに失敗します(divの読み込みgifは非表示になりません):
$('#filters a').click(function() {
var selector = $(this).attr('data-filter');
$("#filtersLoad").show(); // Show loading gif in div
$container.isotope({
filter: selector
});
alert("foo");
if ($container.data('isotope').$filteredAtoms.length) {
$("#filtersLoad").hide(); // Hide same div when filter and layout completes.
}
return false;
});
かなり馬鹿げた何かだと思います!他のアプローチにもオープンです。
ご協力いただきありがとうございます!
ローダーのHTML:
$("#filtersLoad, #postLoad").html('<img style=\"float:left; border:none;\" src=\"../../themes/images/ajax-loader2.gif\" width=\"54\" height=\"55\">');
});
最新のリビジョンこれは機能しますが、きれいではありません。Joshのコードは私に良いスタートを与えましたが、同じボタンが連続してクリックされた場合にローダーを停止する何かが必要でした(以下のコメントを参照)。
$('#filters a').click(function() {
var selector = $(this).attr('data-filter');
var lastClicked = $("#filtersLoad2").text();
if(lastClicked == selector) {
return false;
}
$container.isotope({
filter: selector,
onLayout: $("#filtersLoad").show() // Show loading gif in div
}, function(){
$("#filtersLoad").hide();
$("#filtersLoad2").text(selector);
});
return false;
});
ここで必要だったので、値をdivに入れましたlastClicked
。さらに、後で使用することもできます。そして、Isotopeを使用しonLayout
て読み込み中のdivを表示します。