123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /**
- * @file
- * Attaches behaviors for the Contextual module.
- */
- (function ($) {
- Drupal.contextualLinks = Drupal.contextualLinks || {};
- /**
- * Attaches outline behavior for regions associated with contextual links.
- */
- Drupal.behaviors.contextualLinks = {
- attach: function (context) {
- $('div.contextual-links-wrapper', context).once('contextual-links', function () {
- var $wrapper = $(this);
- var $region = $wrapper.closest('.contextual-links-region');
- var $links = $wrapper.find('ul.contextual-links');
- var $trigger = $('<a class="contextual-links-trigger" href="#" />').text(Drupal.t('Configure')).click(
- function () {
- $links.stop(true, true).slideToggle(100);
- $wrapper.toggleClass('contextual-links-active');
- return false;
- }
- );
- // Attach hover behavior to trigger and ul.contextual-links.
- $trigger.add($links).hover(
- function () { $region.addClass('contextual-links-region-active'); },
- function () { $region.removeClass('contextual-links-region-active'); }
- );
- // Hide the contextual links when user clicks a link or rolls out of the .contextual-links-region.
- $region.bind('mouseleave click', Drupal.contextualLinks.mouseleave);
- // Prepend the trigger.
- $wrapper.prepend($trigger);
- });
- }
- };
- /**
- * Disables outline for the region contextual links are associated with.
- */
- Drupal.contextualLinks.mouseleave = function () {
- $(this)
- .find('.contextual-links-active').removeClass('contextual-links-active')
- .find('ul.contextual-links').hide();
- };
- })(jQuery);
|