Ghost/core/client/toggle.js
William Dibbern ebe70534c2 Corrected settings menu bugs
Fixes #788

- Toggles now close all any other open toggles.
- Added .active class for post settings menu to ensure highlight stays
on settings icon/button until it is closed, not just on hover.
2013-09-17 20:59:35 -05: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();
});
// 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(200);
}
});
};
$(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));
});
}());