var $j = jQuery.noConflict();
$j(document).ready(function(e) {
// Switcher buttons
(function () {
// Cache selector to all items
var $items = $j( '.oceanwp-modules .modules-inner' ).find( '.column-wrap' ),
fadeoutClass = 'is-fadeout',
fadeinClass = 'is-fadein',
animationDuration = 200;
// Hide all items.
var fadeOut = function () {
var dfd = jQuery.Deferred();
$items.addClass( fadeoutClass );
setTimeout( function() {
$items.removeClass( fadeoutClass ).hide();
dfd.resolve();
}, animationDuration );
return dfd.promise();
};
var fadeIn = function ( type, dfd ) {
var filter = type ? '[data-type*="' + type + '"]' : 'div';
if ( 'all' === type ) {
filter = 'div';
}
$items.filter( filter ).show().addClass( 'is-fadein' );
setTimeout( function() {
$items.removeClass( fadeinClass );
dfd.resolve();
}, animationDuration );
};
var animate = function ( type ) {
var dfd = jQuery.Deferred();
var promise = fadeOut();
promise.done( function () {
fadeIn( type, dfd );
} );
return dfd;
};
$j( '.oceanwp-modules .btn-switcher li a' ).on( 'click', function( event ) {
event.preventDefault();
// Remove 'active' class from the previous nav list items.
$j( this ).parent().siblings().removeClass( 'active' );
// Add the 'active' class to this nav list item.
$j( this ).parent().addClass( 'active' );
var type = this.hash.slice(1);
// show/hide the right items, based on type selected
var promise = animate( type );
promise.done();
} );
$j( document ).on( 'click', '#owp-switch-all', function() {
if ( $j( this ).is( ':checked' ) ) {
$j( this ).closest( '.oceanwp-modules' ).find( 'input.owp-checkbox' ).prop( 'checked', true );
} else {
$j( this ).closest( '.oceanwp-modules' ).find( 'input.owp-checkbox' ).prop( 'checked', false );
}
} );
}());
} );
|