javascript - JQuery/JavaScript 隐藏一个单击的元素,但不隐藏其他元素

标签 javascript jquery click hide

我正在创建一个 JavaScript 和 JQuery“打地鼠”游戏,并且每两秒将随机坐标处的“地鼠”图像附加到游戏空间中。单击痣时,我希望它隐藏(从屏幕上消失)。然而,按照我现在编写代码的方式,单击一颗痣会导致所有痣图像被隐藏。很想听听有关仅选择和隐藏单击的痣图像而不隐藏其他痣图像的任何想法。

这是我的“addMole”函数:

function addMole() {
    xPos = randPosX();
    yPos = randPosY();
    $('#gamespace').append('<img src="img/mole.png" style="top:'+yPos+'px;left:'+xPos+'px" />').addClass('mole'); // insert mole into #gamespace
    repeatAddMole = setTimeout("addMole()", 2000); // append moles every 2 seconds
};

这是游戏的主要功能:

$(document).ready(function() {
    $('#start_button').click(function() { 
        start();
        $('#timer').show(); // show timer
        $('.mole').on("click", function(){
            incScore();
            $('img', this).hide();
        });
    });

谢谢!

最佳答案

您正在将 mole 类添加到#gamespace,而不是图像。也许你想要这个:

$('#gamespace').append($('<img src="img/mole.png" style="top:'+yPos+'px;left:'+xPos+'px" />').addClass('mole'));

这里有一个演示可以帮助您https://jsfiddle.net/bradlis7/ubar2Lzb/1/ 。我喜欢让这些函数按照它们所说的去做(addMole 不应该真正设置一个新的计时器)。

关于javascript - JQuery/JavaScript 隐藏一个单击的元素,但不隐藏其他元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34887544/

相关文章:

c++ - 输入 SpinBox 时点击默认的 QPushButton

javascript - 删除动态创建的行 : removechild

javascript - 直接与委托(delegate) - jQuery .on()

javascript - 为什么 for 循环在中间参数为 'null' 时终止?

javascript - jQuery click() 不适用于 JSON

javascript - 单击鼠标在 3 个功能之间切换

javascript - 当 id 未知时,在动态生成的选择框中选择选项

c# - jquery 对话框内的 FileUpload,hasfile false

jquery - IE8 的奇怪问题(但不是 IE7/Firefox/Chome)- 使用 Javascript 后内容溢出

javascript - 如何获取用户上传的.PDF的页数?