Изменяющееся изображение должно обрабатываться с помощью CSS, а не Javascript, а воспроизведение звука должно обрабатываться в Javascript.
HTML:
<div class="hover_sound"></div>
CSS:
.hover_sound {
background: url(image.png) no-repeat;
height: 200px;
width: 200px;
}
.hover_sound:hover { url(image_hover.png) no-repeat}
Javascript:
Воспроизведение звука должно обрабатываться Javascript, и вы можете сделать это с HTML5-совместимыми браузерами, которые поддерживаютMP3 (Chrome, Safari, IE9) со следующим:
;(function() {
// get the hover element and instantiate sound.
var hoverSoundElement = document.querySelector(".hover_sound")
, sound = new Audio("mysound.mp3")
// play the sound when the mouse enters.
hoverSoundElement.addEventListener("mouseover", sound.play.bind(sound))
hoverSoundElement.addEventListener("mouseout", function() {
// stop the sound when the mouse leaves.
sound.pause()
// reset sound's position to the beginning.
sound.currentTime = 0
})
})()
Если вы хотите поддерживать старые браузеры, используйте что-то вроде jQuery или MooTools для DOM и если вы хотите поддерживать старые браузеры с вашимзвук, используйте SoundManager2 (http://www.schillmania.com/projects/soundmanager2/) или используйте несколько источников звука для лучшей поддержки, например, источники OGG и MP3.
«Правильный» ответ здесь правильный с точки зрения реализации, но вы должны попытатьсякак можно больше разделяйте ваши заботы, а выключение изображения - это забота о стиле, которую легко можно решить с помощью CSS вместо Javascript.