javascript - JQuery 点击显示图像,然后在延迟后让它消失?

标签 javascript jquery html

我正在创建一个简单的 Simon 游戏,我想要最简单的编码方式,如果单击四个按钮中的一个,它会改变图像一秒钟左右(开启模式),播放声音,然后回到原来的颜色。现在我已经搜索过了,但我所看到的一切都与 div 或其他类型的问题有关。

截至目前,该按钮变为打开按钮图像,播放声音,但是当我尝试任何功能来隐藏或淡出或类似的任何东西时,它会变成一种奇怪的灰色,但不会消失。我尝试使用 attr() 将图像设置回原来的状态,中间有延迟,但这也不起作用。代码很长,但我会发布相关内容...

    <audio src="sounds/1.mp3" id ="snd1"></audio>
    <audio src="sounds/2.mp3" id ="snd2"></audio>
    <audio src="sounds/3.mp3" id ="snd3"></audio>
    <audio src="sounds/4.mp3" id ="snd4"></audio>
    <div id="juego">
        <div id="simon">
            <div id="c1"><img id ="c1i" src="imgs/d1.png"></div>
            <div id="c2"><img id ="c2i" src="imgs/d2.png"></div>
            <div id="c3"><img id ="c3i" src="imgs/d3.png"></div>
            <div id="c4"><img id ="c4i" src="imgs/d4.png"></div>
        </div>

从我的 js 文件...

    $("#c1").on("click", function() {
            $("#c1i").attr("src", "imgs/1.png").hide("slow");
            $("#snd1")[0].play();
});

编辑:我还要补充一点,现在点击按钮只能让我点击一次来执行该功能。单击后,它只会变灰。没有颜色变化,没有声音播放。对我来说很神秘......

最佳答案

试试这个:

$("#c1").on("click", function() {
       // change the image , and make sure this image path exists ...
      $("#c1i").attr("src", "imgs/1.png");
      // make it disappear and play the sound after 1 second
      setTimeout(function(){
        $("#c1i").hide();
        $("#snd1")[0].play();
      },1000);

});

关于javascript - JQuery 点击显示图像,然后在延迟后让它消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23971125/

相关文章:

javascript - 获取加载的 SVG 文件的内容

Javascript 函数需要 2 次点击才能触发

javascript - AngularJS 可以在加载后编译由外部库附加的 HTML 吗?

JavaScript - 原型(prototype)方法未定义

javascript - 如何检查溢出并将其与 if then 函数结合使用 Javascript/JQuery

javascript - 使用 Javascript 触发电话调用

javascript - getElementByID 有效,getElementsByClassName 无效

c# - 在我的 MVC3 应用程序中使用 jQuery 自动完成

javascript - iscroll 在 phonegap 中不起作用?如何在 phonegap 中使用 iscroll

html - 使用复选框在调整后的大小和带有滚动条的原始大小之间切换图像大小