Both IE8 related, the first issue I'm encountering is on mouseenter and mouseleave, the nav tooltips display on mouseenter but on mouseleave they remain there?

Code:
    $(function () {
        var r = $("#options");
        $("#options").children(), $("#tips").children(), r.on("mouseenter", "a", function () {
            $($(this).attr("href") + "Tool").animate({
                opacity: 1,
                duration: 100,
                paddingRight: "10px"
            }, {
                queue: !1
            })
        }).on("mouseleave", "a", function () {
            $($(this).attr("href") + "Tool").animate({
                opacity: 0,
                duration: 100,
                paddingRight: "0px"
            }, {
                queue: !1
            })
        })
    }), $("a[href='#bottom']").click(function () {
        return $("html, body").animate({
            scrollTop: $(document).height()
        }, "slow"), !1
    });
Now the other issue in IE8 only is when I'm clicking on an anchor, it will scroll the first time but subsequent times it won't. It will change the URL hash but not scroll. I'm even using `querySelectorAll` to make it work in IE8 but no luck.

Code:
     var layers = document.getElementById("body").querySelectorAll('.slide'),
         nav = document.getElementById("options").getElementsByTagName("ul"),
         layer = 0,
         activeLayer = 0,
         onLoad = !0,
         lockButton = !1,
         storeOffset = -1,
         first = !0,
         initialAnimation = !1,
         animateUpSettings = {
             duration: 500,
             done: function () {
                 document.body.style.overflow = "auto", lockButton = !1
             }
         }, animateDownSettings = {
             duration: 500,
             easing: "sqrt",
             done: animateUpSettings.done
         }, s = skrollr.init({
             forceHeight: !0,
             beforerender: function () {
                 if (first && !window.location.hash)
                     for (var e = 0; e < nav.length; e++) 0 == e ? nav[e].setAttribute(
                         "class",
                         "button active") : nav[e].setAttribute(
                         "class",
                         "button inactive");
                 else
                 if (first && window.location.hash) {
                     for (var e = 0; e < nav.length; e++) nav[e].getAttribute(
                         "tag") == window.location.hash.substring(1) ? nav[e].setAttribute(
                         "class",
                         "button active") : nav[e].setAttribute(
                         "class",
                         "button inactive");
                     for (var e = 0; e < layers.length; e++)
                         if (layers[e].getAttribute(
                             "tag") == window.location.hash.substring(1)) {
                             goTo = layers[e], activeLayer = e;
                             break
                         }
                     storeOffset = this.relativeToAbsolute(goTo,
                         "top",
                         "top");
                     var
                     t = document.height - window.innerHeight;
                     storeOffset > t && (storeOffset = t), this.getScrollTop() < storeOffset ? this.animateTo(storeOffset, animateDownSettings) : this.animateTo(storeOffset, animateUpSettings), first = !1
                 } else
                 if (this.isAnimatingTo() || onLoad && (onLoad = !1, window.location.hash && layers[activeLayer].getAttribute(
                     "tag") != window.location.hash.substring(1) && (initialAnimation = !0)), window.location.hash) {
                     if (!this.isAnimatingTo())
                         for (var e = 0; e < nav.length; e++) nav[e].getAttribute(
                             "tag") == window.location.hash.substring(1) ? nav[e].setAttribute(
                             "class",
                             "button active") : nav[e].setAttribute(
                             "class",
                             "button inactive")
                 } else
                     nav[0].setAttribute(
                         "class",
                         "active")
             },
             render: function () {
                 if (!this.isAnimatingTo() && !lockButton) {
                     layer = -2;
                     for (var e = 0; e < layers.length; e++) this.getScrollTop() >= this.relativeToAbsolute(layers[e], "top", "top") && (layer = e);
                     0 > layer && (layer = 0), window.location = "#" + layers[layer].getAttribute("tag")
                 }
                 if (initialAnimation) {
                     initialAnimation = !1, goTo = null;
                     for (var e = 0; e < layers.length; e++)
                         if (layers[e].getAttribute(
                             "tag") == window.location.hash.substring(1)) {
                             goTo = layers[e], activeLayer = e;
                             break
                         }
                     storeOffset = this.relativeToAbsolute(goTo,
                         "top",
                         "top");
                     var
                     t = document.height - window.innerHeight;
                     storeOffset > t && (storeOffset = t), this.getScrollTop() < storeOffset ? this.animateTo(storeOffset, animateDownSettings) : this.animateTo(storeOffset, animateUpSettings)
                 }
             }
         });
     document.getElementById(
         "nav").onclick = function () {
         s.stopAnimateTo(), setTimeout(function () {
             onLoad = !0, initailAnimation = !0, s.refresh(layers), lockButton = !0
         }, 10)
     };
I should also mention that I have set Developer Tools debugger on and it doesn't find any JS error which is kind of frustrating.