我是一个 js/jQuery 新手。我试图向 div 添加一些代码,以在鼠标悬停时更改其类。它在 FF、Chrome 和 IE9 中运行良好。但在 IE8 和 IE7 中,它不起作用。我究竟做错了什么?代码是:
<div class="calloutHover" onmouseover="$(this).attr('class', 'calloutHoverOver')" onmouseout="$(this).attr('class', 'calloutHover')" >
我是一个 js/jQuery 新手。我试图向 div 添加一些代码,以在鼠标悬停时更改其类。它在 FF、Chrome 和 IE9 中运行良好。但在 IE8 和 IE7 中,它不起作用。我究竟做错了什么?代码是:
<div class="calloutHover" onmouseover="$(this).attr('class', 'calloutHoverOver')" onmouseout="$(this).attr('class', 'calloutHover')" >
我认为答案在于 ie8 可能无法将 class 识别为 attr。所以使用
$(yourelement).addClass('yourclass')
最好在 div 之后的某个地方执行此操作:
<script type="text/javascript">
$('#yourdivId').hover(function(){
$(this).addClass('calloutHover');
}, function(){
$(this).removeClass('calloutHover');
});
</script>
它将所有代码与您的 HTML 分开,如果没有 id,那么您可以将一个类应用于您希望以这种方式表现的所有 div,并一次将行为应用于所有这些 div。
(使用第二种方法也意味着您依赖 jQuery 来正确处理 ie8 的独特行为。)