Jquery IE中的类转换问题
我需要更改mouseover事件中元素的类,但它不会触发。但是,如果我在函数中添加了一个警报,它确实可以工作 不起作用:Jquery IE中的类转换问题,jquery,internet-explorer,Jquery,Internet Explorer,我需要更改mouseover事件中元素的类,但它不会触发。但是,如果我在函数中添加了一个警报,它确实可以工作 不起作用: mouseenter: function(){ $('#id-b-red').addClass('mouseover') } 是否有效: mouseenter: function(){ alert('$%!# IE') $('#id-b-red').addClass('mouseover') } 也许这与我使用:before和:after伪元素有关 .
mouseenter: function(){
$('#id-b-red').addClass('mouseover')
}
是否有效:
mouseenter: function(){
alert('$%!# IE')
$('#id-b-red').addClass('mouseover')
}
也许这与我使用:before和:after伪元素有关
.mouseover:before,
.mouseover .btn-before,
.mouseover:after,
.mouseover .btn-after{
background-position: 0 -33px;
}
但是我不知道如何解决它。首先,正如评论中所述,Javascript代码需要分号来结束每个语句。在某些情况下,如果一个块中只有一行,则可以不使用它们,这就是为什么原始代码在没有警报的情况下工作,但我怀疑这可能是添加警报不起作用的原因。好的Javascript代码应该在每一行的末尾都有一个分号
第二:请说明您正在测试的IE版本以及您需要使用的版本。您正在使用:before和:after。请注意,这些伪选择器仅适用于IE8及以上版本。它们在IE6或IE7中不起作用。因此,如果您正在使用旧版本的IE或更新版本进行测试,但使用的是quirks模式或兼容模式,那么:before和:after将被中断。试试这个。它适用于我所有的浏览器
<html>
<head>
<title>Sample</title>
</head>
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e){
$('#testBox').mouseenter(function() {
$(this).addClass('greenClass');
});
$('#testBox').mouseleave(function() {
$(this).removeClass('greenClass');
});
});
</script>
<style type="text/css">
.redClass{
background-color:red;
}
.greenClass{
background-color:green;
}
</style>
<body>
<div id="testBox" style="height:30px; width:30px;" class="redClass"></div>
</body>
@马特波尔哈-我做了同样的编辑:-你应该包括;在…的结尾statements@ALL:对不起。他正在做翻译工作@约瑟夫,你改变了OP的密码,不要那样做。。。。我改了back@UkuLoskit-你应该,但你不需要to@Neal-哇,那篇文章真是一篇长篇大论。而且是错误的。在某些情况下,它们是可选的,这是正确的,但它们是无用的,这是错误的。他对花括号的看法也是错误的。他反对公认的良好做法。他甚至还提出了一个警告,说明他自己的论点完全站不住脚,并确切说明了他错的原因。然后,他主张在某些行的前面加上分号。哇!哇。我会忘记我读过那本书。