summaryrefslogtreecommitdiff
path: root/modules/contextual/contextual.js
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-12-13 13:00:32 +0000
committerDries Buytaert <dries@buytaert.net>2009-12-13 13:00:32 +0000
commitab6f592cd72b0ed0b33a962985004d19969da479 (patch)
tree716ac12ab2a449e630bec5efbdab459763ffef02 /modules/contextual/contextual.js
parent601150c2627c017b29a1f240dc7398b36b7ca47f (diff)
downloadbrdo-ab6f592cd72b0ed0b33a962985004d19969da479.tar.gz
brdo-ab6f592cd72b0ed0b33a962985004d19969da479.tar.bz2
- Patch #601150 by bleen18, eojthebrave, seutje, bganicky, sun, yoroy, JacobSingh, ivansf, drifter: improved UI for contextual links.
Diffstat (limited to 'modules/contextual/contextual.js')
-rw-r--r--modules/contextual/contextual.js24
1 files changed, 13 insertions, 11 deletions
diff --git a/modules/contextual/contextual.js b/modules/contextual/contextual.js
index 0dfc9ddfa..92973f661 100644
--- a/modules/contextual/contextual.js
+++ b/modules/contextual/contextual.js
@@ -10,6 +10,8 @@ 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 () {
$wrapper.find('ul.contextual-links').slideToggle(100);
@@ -17,24 +19,24 @@ Drupal.behaviors.contextualLinks = {
return false;
}
);
- $wrapper.prepend($trigger)
- .closest('.contextual-links-region').hover(Drupal.contextualLinks.hover, Drupal.contextualLinks.hoverOut);
+ // 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 rolls out of the ul.contextual-links or .contextual-links-region.
+ $links.add($region).bind('mouseleave', Drupal.contextualLinks.mouseleave);
+ // Prepend the trigger.
+ $links.end().prepend($trigger);
});
}
};
/**
- * Enables outline for the region contextual links are associated with.
- */
-Drupal.contextualLinks.hover = function () {
- $(this).closest('.contextual-links-region').addClass('contextual-links-region-active');
-};
-
-/**
* Disables outline for the region contextual links are associated with.
*/
-Drupal.contextualLinks.hoverOut = function () {
- $(this).closest('.contextual-links-region').removeClass('contextual-links-region-active')
+Drupal.contextualLinks.mouseleave = function () {
+ $(this).closest('.contextual-links-region')
.find('.contextual-links-active').removeClass('contextual-links-active')
.find('ul.contextual-links').hide();
};