Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
swith的javascript问题,img&;声音_Javascript_Jquery_Html_Css_Audio - Fatal编程技术网

swith的javascript问题,img&;声音

swith的javascript问题,img&;声音,javascript,jquery,html,css,audio,Javascript,Jquery,Html,Css,Audio,我的软件有一些问题,我正在添加帮助声音按钮 这就像 当我按它喜欢 当音频结束时,它会变为 但是如果我想重播它,我必须点击按钮两次。 为什么是这样,以及如何更正它,以便我只需单击一下即可重播它 HTML JAVASCRIPT var clickNumber=2, timeoutId=null; 功能声音(声音文件){ imagesnd=document.getElementById('snd'); 开关(点击编号) { 案例1: imagesnd.src=“images/soundoff.pn

我的软件有一些问题,我正在添加帮助声音按钮

这就像

当我按它喜欢

当音频结束时,它会变为

但是如果我想重播它,我必须点击按钮两次。 为什么是这样,以及如何更正它,以便我只需单击一下即可重播它

HTML


JAVASCRIPT

var clickNumber=2,
timeoutId=null;
功能声音(声音文件){
imagesnd=document.getElementById('snd');
开关(点击编号)
{
案例1:
imagesnd.src=“images/soundoff.png”;
document.getElementById(“dummy”).innerHTML=“”;
if(timeoutId!==null)
{
clearTimeout(timeoutId);
timeoutId=null;
}
单击数字=2
返回(假);
打破
案例2:
点击数字=1;
imagesnd.src=“images/sound.png”;
document.getElementById(“dummy”).innerHTML=“”;
timeoutId=setTimeout(函数(){
imagesnd.src=“images/soundoff.png”;
点击数字=1;
},10000);
点击数字=1;
打破
}//开关端
}//功能端

您的超时时间设置为10秒。尝试在超时处理程序中放置一个
控制台。记录
,查看它是否真的被触发,并在再次单击图像之前将
clickNumber
重置为1。

我得到了它,我只是更改了图像而不是案例,所以当我第一次单击它时,它会转到案例1(无声音),第二次单击案例2(声音)

谢谢!,通过把console.log放进去,我得到了问题
<div id="dummy"></div>
<img src="images/soundoff.png" onClick="sound('helpsound.mp3')" id="snd" />
 var clickNumber = 2,
 timeoutId = null;

 function sound(soundfile) {
 imagesnd = document.getElementById('snd');

 switch (clickNumber)
 {
  case 1:
        imagesnd.src = "images/soundoff.png";
        document.getElementById("dummy").innerHTML="";
        if (timeoutId !== null) 
        {
           clearTimeout(timeoutId);
           timeoutId = null;
        }
        clickNumber = 2
        return(false);
        break;

  case 2:
        clickNumber = 1;                                                                       
        imagesnd.src = "images/sound.png";

        document.getElementById("dummy").innerHTML="<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"true\" loop=\"false\"/>";
        timeoutId = setTimeout(function(){
           imagesnd.src = "images/soundoff.png";
           clickNumber = 1;
    },10000);
        clickNumber = 1;
        break;
 }//switch end
 }//function end