Bugfix: extra space left behind in class field

`add_class` was leaving behind an extra space on mouseout
This commit is contained in:
rmrenner 2018-11-23 08:25:10 -06:00 committed by GitHub
parent edcf78242a
commit 083e5cbec5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -491,12 +491,24 @@ var highlight_lisp = function() {
} }
}; };
var add_class = function(el, classname, add) var toggle_class = function(element, classname)
{ {
if(!el) return; if (element.classList)
el.className = el.className.replace(new RegExp(classname, 'g'), ''); { element.classList.toggle(classname); }
if(add) el.className += ' '+classname; else
}; {
//for IE9
var classes = element.className.split(" ");
var i = classes.indexOf(classname);
if (i >= 0)
{ classes.splice(i, 1); }
else
{
classes.push(classname);
element.className = classes.join(" ");
}
}
}
var codes = document.getElementsByClassName('hl-highlighted'); var codes = document.getElementsByClassName('hl-highlighted');
for(var i = 0; i < codes.length; i++) for(var i = 0; i < codes.length; i++)
@ -507,8 +519,8 @@ var highlight_lisp = function() {
var hovered = e.target; var hovered = e.target;
if(!is_paren(hovered)) return; if(!is_paren(hovered)) return;
var match = find_match(hovered); var match = find_match(hovered);
add_class(hovered, 'active', add); toggle_class(hovered, 'active');
add_class(match, 'active', add); toggle_class(match, 'active');
}; };
code.addEventListener('mouseover', listener.bind(this, true)); code.addEventListener('mouseover', listener.bind(this, true));
code.addEventListener('mouseout', listener.bind(this, false)); code.addEventListener('mouseout', listener.bind(this, false));