2017-06-18 5 views
0

Ich habe ein Audioelement in meinem DOM. ich ausgeführt, um den folgenden Befehl ein und es scheint, wie das Click-Ereignis aus irgendeinem Grund nicht abfeuert:Click-Ereignis wird nicht auf ein Audioelement in Chrome ausgelöst

$0.addEventListener('click',function(){console.log('click')}); 

Wenn ich versuchte, ein Mouseover-Prozedur hinzuzufügen es wie erwartet funktioniert:

$0.addEventListener('mouseover',function(){console.log('mouseover')}); 

In Firefox der Klick Ereignis funktioniert ordnungsgemäß. Irgendwelche Ideen?

Antwort

0

Direkt wird es nicht funktionieren.

Sie müssen ein shimified div around hinzufügen, um das click-Ereignis zu erhalten.

Javascript:

function onAudioElClick() { 
    console.log('click'); 
} 

HTML:

<div onclick="onAudioElClick()" style="position:absolute; z-index:9999; width:300px; height:30px;"></div> 
<audio></audio>` 
+0

i Eigentlich will ich nicht o ändern Sie den HTML-Code. sagst du, das ist ein Bug in Chrome? –

+0

Dies ist ein gewünschtes Verhalten. – gauravmuk

+0

warum? Es ist nicht dokumentiert, dass Audioelemente keine Klickereignisse auslösen, und in Firefox funktioniert es ... –

0

Es ist sehr seltsam, dass mouseover funktioniert, aber click nicht.

Wenn Sie audio Element in anderen Element wie div wickeln wird, dann können Sie click Ereignis behandeln:

JavaScript:

<div> 
    audio element 
    <audio src="http://developer.mozilla.org/@api/deki/files/2926/=AudioTest_(1).ogg" autoplay></audio> 
</div> 

HTML:

var el = document.querySelector("div"); 
el.addEventListener('click',function(){console.log('click')}); 

https://jsfiddle.net/b3sbmqpj/

Verwandte Themen