Ghost/core/client/toggle.js
2014-01-07 22:19:52 +01:00

58 lines
1.6 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// # Toggle Support
/*global document, $, Ghost */
(function () {
'use strict';
Ghost.temporary.hideToggles = function () {
$('[data-toggle]').each(function () {
var toggle = $(this).data('toggle');
$(this).parent().children(toggle + ':visible').fadeOut(150);
});
// Toggle active classes on menu headers
$('[data-toggle].active').removeClass('active');
};
Ghost.temporary.initToggles = function ($el) {
$el.find('[data-toggle]').each(function () {
var toggle = $(this).data('toggle');
$(this).parent().children(toggle).hide();
});
$el.find('[data-toggle]').on('click', function (e) {
e.preventDefault();
e.stopPropagation();
var $this = $(this),
toggle = $this.data('toggle'),
isAlreadyActive = $this.is('.active');
// Close all the other open toggle menus
Ghost.temporary.hideToggles();
if (!isAlreadyActive) {
$this.toggleClass('active');
$(this).parent().children(toggle).toggleClass('open').fadeToggle(150);
}
});
};
$(document).ready(function () {
// ## Toggle Up In Your Grill
// Allows for toggling via data-attributes.
// ### Usage
// <nav>
// <a href="#" data-toggle=".toggle-me">Toggle</a>
// <ul class="toggle-me">
// <li>Toggled yo</li>
// </ul>
// </nav>
Ghost.temporary.initToggles($(document));
});
}());