いくつかの基本的な機能をサポートするために BBQ ライブラリを拡張する方法を見つけようとしていますが、現時点では実行できないことがわかりました。私はAJAXローディングポートフォリオサイトを作成しており、この例に従っていますhttp://benalman.com/code/projects/jquery-bbq/examples/fragment-basic/
同位体グリッド レイアウトがあり、項目をクリックすると、グリッドがフェード アウトし、AJAX コンテンツがフェード インするようにしたいと考えています。ボックスの例は、idが好きなことを正確に行っていません。
$(window).bind( 'hashchange', function(e) {
var url = $.param.fragment();
$( 'a.bbq-current' ).removeClass( 'bbq-current' );
// Hide any visible ajax content.
$( '.site-container' ).children( ':visible').hide();
if ( cache[ url ] ) {
// Since the element is already in the cache, it doesn't need to be
// created, so instead of creating it again, let's just show it!
cache[ url ].show();
} else {
// Show "loading" content while AJAX content loads.
$( '#load' ).show();
// Create container for this url's content and store a reference to it in
// the cache.
cache[ url ] = $( '<div class="ajax-item"/>' )
// Append the content container to the parent container.
.appendTo( '.site-container' )
// Load external content via AJAX. Note that in order to keep this
// example streamlined, only the content in .infobox is shown. You'll
// want to change this based on your needs.
.load(url+' .work-detail', function(){
// Content loaded, hide "loading" content.
$( '#load' ).hide();
$('.work-detail').addClass('work-detail-show');
});
}
})
// Since the event is only triggered when the hash changes, we need to trigger
// the event now, to handle the hash the page may have loaded with.
$(window).trigger( 'hashchange' );
});
理想的には、非表示/表示のためにこれを行うのが好きです
$( '.site-container' ).children( ':visible').runSomeFunction();
cache[ url ].runSomeOtherFunction,''();
これらの機能は次のようなものです
function runSomeFunction() {
$(this).addClass('fadeOut');//Adds class which changes scale and opacity
setTimeout(function(){$(this).hide();}, 700);//Removes div
});
現在、上記の例を実行しようとすると、「runSomeFunction は関数ではありません」というエラーが発生します。