h5ai-flpsite/src/_h5ai/client/js/inc/ext/link-hover-states.js
2012-10-18 21:27:09 +02:00

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();
});