2016-08-08 149 views
1

我已经为我的论坛制作了这个脚本,并且想知道是否有人可以指导我如何让浏览器播放音频文件,如果用户悬停在类style113上,但它必须给他们发出警告提醒,说"audio is about to play"如果他们按下了应该播放的警报,如果他们按下取消它不应该播放。我怎样才能做到这一点?这里是剧本我到目前为止有:播放悬停的音频文件

my script has been removed 
+0

我的回答对你有帮助吗?如果是这样,请确保接受它(通过点击答案旁边的绿色复选标记)以向其显示帮助您的社区。如果没有,请申请更多帮助。 –

回答

0

您可以使用下面的代码:

var elems = document.getElementsByClassName("style113"); 
for(i in elems) { 
    elems[i].addEventListener("mouseover", function() { 
     if(confirm(" %%% CONFIRMATION MESSAGE %%% ")) { 
      // %%% CODE TO PLAY SOUND %%% 
     } 
    }); 
} 

作用:

  1. 遍历类的元素style113
  2. 再添一个事件监听器对事件的每个元素mouseover
  3. 在每个事件侦听器,创建一个confirm()弹出(有两个按钮,一个确认,一个取消)
  4. 如果confirm()方法返回true(如果单击肯定按钮),然后播放声音

Working example on JSFiddle


UPDATE按在下面的意见OP请求,您可以在for循环这个代码添加到您的特定代码:

document.getElementsByClassName('style113')[x].addEventListener("mouseover", function() { 
    if(confirm("audio is about to play")) { 
     // %%% CODE TO PLAY SOUND %%% 
    } 
}); 

我还建议您使用更好的缩进实践清理源代码。此外,请避免提出过多的DOM请求(例如,重复性为document.getElementsByClassName()),而不要注意caching DOM requests

+0

我在哪里放置?什么行 – ThePlacid

+0

@ThePlacid我会扩大我的答案,包括该信息。稍等片刻。 –

+0

@ThePlacid编辑。您可以将事件侦听器(较低的代码)放在两个循环中,就像所有以'document.getElementsByClassName()'开头的其他行一样。另请参阅我对DOM请求的评论。 –