Javascript IE8上的jQuery切换类
我试图在标题到达某个滚动条时将其颜色更改为标题。我将此脚本用于jQuery:Javascript IE8上的jQuery切换类,javascript,jquery,internet-explorer-8,toggleclass,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外,它适用于所有浏
var $document = jQuery(document),
$element = jQuery('#header'),
className = 'red';
$document.scroll(function() {
$element.toggleClass(className, $document.scrollTop() >= 400);
});
除IE8外,它适用于所有浏览器。IE8是否不支持toggleClass?我怎样才能解决它
任何帮助都将不胜感激。谢谢
jsFiddle:
在IE中:问题在于IE中的阅读不同。IE更喜欢您使用。您会发现以下内容更加兼容跨浏览器
$(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);
});
})
问题更可能出在
.scrollTop()
上,而不是.toggleClass()
上。为什么要将$
和jQuery
混合在一起?会出现什么错误?没有错误,只是它不会改变颜色。您检查过“滚动”是否正确吗事件是否触发?@j08691混合$
和jQuery
是什么意思。我只看到所有jQuery结果集的前缀都是$
,这在源代码中直接显示它是jQuery结果集并不是一种罕见的做法。谢谢,您已经解决了!我不知道IE上的$document有这个问题,我认为这是一个切换类问题,因为我在网上发现了几个关于这个的问题,我把重点放在了这个问题上。你永远不会停止学习,谢谢!