IE8上的jQuery toggleClass

时间:2013-09-17 17:20:57

标签: javascript jquery internet-explorer-8 toggleclass

我尝试在达到某个滚动条时将颜色更改为标题。我在jQuery中使用这个脚本:

var $document = jQuery(document),
    $element = jQuery('#header'),
    className = 'red';

$document.scroll(function() {
    $element.toggleClass(className, $document.scrollTop() >= 400);
}); 

除了IE8之外,它适用于所有浏览器。 IE8不支持toggleClass吗?我该如何解决?

任何帮助将不胜感激。感谢

jsFiddle:http://jsfiddle.net/itzuki87/e4XTw/
在IE中:http://jsfiddle.net/itzuki87/e4XTw/show/

1 个答案:

答案 0 :(得分:2)

问题是$(document)在IE中被读取不同。 IE更喜欢使用$(window)。您会发现以下内容更具跨浏览器兼容性。

$(function() {
    $(window).scroll(function(e) {
        $("#header").toggleClass("red", $(this).scrollTop() >= 400);
    });
})

或使用您的变量类型设置:

jQuery(function() {
    var $window = jQuery(window),
        $element = jQuery("#header"),
        className = "red";

    $window.scroll(function(e) {
        $element.toggleClass(className, jQuery(this).scrollTop() >= 400);
    });
})

See working in IE8! and more (Safari, FF, Chrome, Opera)!


Using my smaller HTML