Вызов функции Js onMouseOver

0

Есть ли способ вызвать функцию Javascript с помощью мыши в HTML?

У меня есть следующий код:

<script src="navSound.js" type="text/javascript"></script>

<a href="#" onmouseover="bubble2.playclip()"><li class="navBackground"><div class="navButton">Gallery</div></li></a>

Я хотел бы, чтобы он вызывал функцию с именем "playclip()", которая находится во внешнем файле, связанном с HTML-документом с именем navSound.js

Есть идеи?

  • 0
    Возможно глупый вопрос, но правильно ли вы импортировали внешний скрипт? Вы можете вызвать функцию без наведения мыши, как при загрузке страницы или что-то? Кроме того, я считаю, что вам не нужно () Afterplayclip. не думаю, что это больно, хотя
  • 0
    Получаете ли вы какие-либо ошибки в журнале консоли? F12 в любом браузере.
Показать ещё 2 комментария
Теги:
onmouseover

1 ответ

3
Лучший ответ

Да, можно так:

<html>
<head>

<script type='text/javascript'>

function playclip() {
    alert('playing clip...');
}

</script>

</head>
<body>

<a href="#" onmouseover="playclip()"><li class="navBackground"><div class="navButton">Gallery</div></li></a>

</body>
</html>

В вашем случае функция playclip() будет находиться во внешнем файле "navSound.js", включенном в тег скрипта, используя атрибут "src".

ОБНОВИТЬ:

Я обновил ваш Fiddle, и вы можете увидеть изменения, которые здесь хорошо работают:

http://jsfiddle.net/Lb966/ (будьте осторожны: вы услышите лошадь neigggggghhhhhh;)

Я также вставляю разметку + код ниже:

<html>
<head>
<script type='text/javascript'>

window.onload = function() {

    var html5_audiotypes={ //define list of audio file extensions and their associated audio types. Add to it if your specified audio file isn't on this list:
        "mp3": "audio/mpeg",
        "mp4": "audio/mp4",
        "ogg": "audio/ogg",
        "wav": "audio/wav"
    }

    function createsoundbite(sound){
        var html5audio=document.createElement('audio');
        if (html5audio.canPlayType){ //check support for HTML5 audio
            for (var i=0; i<arguments.length; i++){
                var sourceel=document.createElement('source')
                sourceel.setAttribute('src', arguments[i])
                if (arguments[i].match(/\.(\w+)$/i))
                    sourceel.setAttribute('type', html5_audiotypes[RegExp.$1])
                html5audio.appendChild(sourceel)
            }
            html5audio.load()
            html5audio.playclip=function(){
                //html5audio.pause()
                html5audio.currentTime=0
                html5audio.play()
            }
            return html5audio
        }
        else{
            return {playclip:function(){throw new Error("Your browser doesn't support HTML5 audio unfortunately")}}
        }
    }

    var audio = createsoundbite("http://www.w3schools.com/html/horse.ogg");
    audio.setAttribute('id', 'myAudio');
    document.getElementById('content').appendChild(audio);

}

</script>
</head>
<body>
<div id='content'></div>
<a href="#" onmouseover="document.getElementById('myAudio').play()">Gallery</a>
</body>
</html>
  • 0
    Спасибо за ответ, к сожалению, это не похоже на работу. Может ли это быть потому, что он передает параметр звука? Вот файл javascript, который я пытаюсь загрузить (bubble2) jsfiddle.net/jakechasan/x4MN7
  • 0
    Я обновил ответ с рабочим примером в соответствии с вашими требованиями. код не требует пояснений, но, пожалуйста, дайте мне знать, если что-то не понятно
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню