52 lines
942 B
JavaScript
52 lines
942 B
JavaScript
|
|
modulejs.define('ext/link-hover-states', ['_', '$', 'core/settings', 'core/event'], function (_, $, allsettings, event) {
|
|
|
|
var settings = _.extend({
|
|
enabled: false
|
|
}, allsettings['link-hover-states']),
|
|
|
|
selector = "a[href^='/']",
|
|
|
|
selectLinks = function (href) {
|
|
|
|
return $(_.filter($(selector), function (el) {
|
|
|
|
return $(el).attr('href') === href;
|
|
}));
|
|
},
|
|
|
|
onMouseEnter = function () {
|
|
|
|
var href = $(this).attr('href');
|
|
|
|
selectLinks(href).addClass('hover');
|
|
},
|
|
|
|
onMouseLeave = function () {
|
|
|
|
var href = $(this).attr('href');
|
|
|
|
selectLinks(href).removeClass('hover');
|
|
},
|
|
|
|
onLocationChanged = function () {
|
|
|
|
$('.hover').removeClass('hover');
|
|
},
|
|
|
|
init = function () {
|
|
|
|
if (!settings.enabled) {
|
|
return;
|
|
}
|
|
|
|
$('body')
|
|
.on('mouseenter', selector, onMouseEnter)
|
|
.on('mouseleave', selector, onMouseLeave);
|
|
|
|
event.sub('location.changed', onLocationChanged);
|
|
};
|
|
|
|
init();
|
|
});
|