2012-06-06 56 views
0

我是一個js/jQuery新手。我試圖添加一些代碼到一個div,它改變了它的類在鼠標上。它在FF,Chrome和IE9中運行良好。但在IE8和IE7中,它不能正常工作。我究竟做錯了什麼?代碼是:與jQuery的onmouseover不工作在IE8上

<div class="calloutHover" onmouseover="$(this).attr('class', 'calloutHoverOver')" onmouseout="$(this).attr('class', 'calloutHover')" > 
+0

你的代碼看起來不錯(不完美,但它應該做的工作)。你遇到了什麼錯誤? div包含什麼? –

+0

剛剛與[這個小提琴](http://jsfiddle.net/zuul/aTV3E/)測試,它工作正常...注:我已經改變爲.html實際上看到的變化。 – Zuul

+0

你有一個有效的文檔類型聲明? – Keith

回答

0

我認爲答案在於ie8可能無法識別類爲attr。因此,使用

$(yourelement).addClass('yourclass') 

最佳股利後,要做到這一點的地方:

<script type="text/javascript"> 
$('#yourdivId').hover(function(){ 
    $(this).addClass('calloutHover'); 
}, function(){ 
    $(this).removeClass('calloutHover'); 
}); 
</script> 

它使所有的代碼是分開從你的HTML,如果沒有ID,那麼你可以申請一個類來所有的div你想以這種方式行事,並將行爲一次性應用於所有人。

(使用第二種方法也意味着你依靠jQuery來正確處理IE8的獨特的行爲。)