我在文档对象模型中拥有一个音频元素。 我执行了下面的命令,但似乎由于某种原因单击事件没有触发:
$0.addEventListener('click',function(){console.log('click')});
当我尝试添加鼠标悬停处理程序时,它按预期工作:
$0.addEventListener('mouseover',function(){console.log('mouseover')});
在Firefox中,点击事件可以正常工作。有什么想法?
我在文档对象模型中拥有一个音频元素。 我执行了下面的命令,但似乎由于某种原因单击事件没有触发:
$0.addEventListener('click',function(){console.log('click')});
当我尝试添加鼠标悬停处理程序时,它按预期工作:
$0.addEventListener('mouseover',function(){console.log('mouseover')});
直接使用是不起作用的。
您需要在其周围添加一个 shimified div 来获取点击事件。
Javascript:
function onAudioElClick() {
console.log('click');
}
HTML:
<div onclick="onAudioElClick()" style="position:absolute; z-index:9999; width:300px; height:30px;"></div>
<audio></audio>`
很奇怪的是,mouseover
能够工作,但是 click
却不能。
如果你将 audio
元素包裹在其他元素中,比如 div
中,那么你就可以处理 click
事件:
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')});