随机数不起作用,仅显示在第一个元素上

乌斯

我坚持我的代码。因此,基本上,当我单击第一扇门时,它将打开一个图像。它根据我的条件随机数显示图像,例如:1 =门是空的,2 =您找到了那个人。

当我单击第二扇门时,刚打开的第一扇门将返回到原始图像,如果我打开第三扇门,则第二件事将返回到原始图像。

我的问题是门仅在第一扇门上打开,而第二和第三扇门没有打开。我想我需要添加“ .is-selected”,但是我不确定如何实现它。

但是我不想使用html,而是要使用javascript。

const doorTarget = document.querySelector(".door-track");
const doorClick = Array.from(doorTarget.children);

const door = true;

doorClick.forEach(function (test) {
  test.addEventListener("click", function () {
    if (door) {
      const doorRandom = Math.floor(Math.random() * 3) + 1;
      //const currentSelector = doorTarget.querySelector(".is-selected");
      //const image = currentSelector.nextElementSibling;

      //currentSelector.classList.remove('is-selected')
      //image.classList.add('is-selected')

      console.log(doorRandom);

      if (doorRandom === 1) {
        document.querySelector(".test1").src = "images/friends.png";
      } else {
        document.querySelector(".test1").src = "images/empty-room.png";

      }
    }
  })
})
<div class="door-wrapper">
    <div class=" door-track-container">
      <ul class="door-track">
        <li class="door-number">
          <a href="#"><img class="test1 is-selected" src="images/door.png"></a>
        </li>
        <li class="door-number">
          <a href="#"><img class="test1" src="images/door.png"></a>
        </li>
        <li class="door-number">
          <a href="#"><img class="test1" src="images/door.png"></a>
        </li>
      </ul>
    </div>

  </div>

zer00ne

活动委托

一个添加eventListener()到列表中(<ol><ul>,等),然后创建的if / else条件,其中<img>s是反作用于所述事件的唯一元件(实施例clickmouseover等)。传递事件对象并使用:

 <ol id='list'>...</ol>
 document.querySelector('#list').addEventListener('click', function(event) {...

另外,如果您<a>s用作按钮并且希望它们停止跳跃,请更改以下内容:

  <a href="#/"></a>

只需添加一个正斜杠: /

演示版

演示中将评论详细信息。

// This will be event.currentTarget
const doorTarget = document.querySelector(".door-track");
// Collect all img.test1 into a NodeList
const doors = document.querySelectorAll('.test1');

// Remember to always pass the event object
doorTarget.addEventListener("click", function(event) {
  // Set all img.src to default
  doors.forEach(function(door) {
    door.src = "https://placeimg.com/160/90/nature";
  });

  // if the clicked element is NOT the list itself... 
  if (event.target !== event.currentTarget) {
    // if the clicked element's class is .test1
    if (event.target.className === "test1") {
      // Get random number in the range of 1 to 3
      const doorRandom = Math.floor(Math.random() * 3) + 1;
      // if that number is 1...
      if (doorRandom === 1) {
        // Change the clicked src to a person image
        event.target.src = "https://placeimg.com/160/90/people";
      } else {
        // Otherwise change clicked src to a tech image
        event.target.src = "https://placeimg.com/160/90/tech";
      }
    }
  }
});
ul {
  display: flex;
  list-style: none;
}
<div class="door-wrapper">
  <div class=" door-track-container">
    <ul class="door-track">
      <li class="door-number">
        <a href="#/"><img class="test1" src="https://placeimg.com/160/90/nature"></a>
      </li>
      <li class="door-number">
        <a href="#/"><img class="test1" src="https://placeimg.com/160/90/nature"></a>
      </li>
      <li class="door-number">
        <a href="#/"><img class="test1" src="https://placeimg.com/160/90/nature"></a>
      </li>
    </ul>
  </div>

</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

幻灯片的第一个元素不显示,按钮也不起作用

CSS:仅针对父级中的第一个子元素 - 第一个类型不起作用

为什么在排序数组的第一个元素中得到一个随机数?

当UITabBarController在屏幕上显示第一个选项卡时,调用什么方法?viewDidAppear不起作用

为什么交易不起作用?仅适用于第一个 .savechanges();

多个音频播放器不起作用-仅第一个(Javascript)

Bash Shell 在 for 循环内部不起作用 - 仅选择第一个值

当第一个地图没有元素时,mergeMaps不起作用?

使用 List 滚动到第一个元素,AutoSizer 不起作用

第一个硒程序不起作用

第一个 TestNG 代码不起作用

* ngIf在我的HTML中不起作用,但是ngIf显示第一个内容

仅显示数据中的第一个元素

仅显示第一个元素

HTML中仅显示第一个元素

Android:ListView仅显示第一个元素

DIV上的第一个孩子选择不起作用

为什么QListWidget中的图标仅显示在第一个元素上?

C ++随机数发生器-第一个随机数始终是7的倍数

第一个随机数总是小于休息数

别名选择器不起作用的SQL IN运算符仅返回第一个匹配项

下面的 Excel VBA 函数仅适用于第一个 IF 条件,ELSEIF 不起作用

生成与第一个为零的随机数

setSeed之后的第一个随机数在Java中始终相似

显示基于第一个下拉列表的第二个下拉列表不起作用

up:第一个链接起作用,其他不起作用

在双指针的帮助下指向第一个数组元素不起作用

Python Sqlite3-Null作为元组中的非第一个元素不起作用

第一个孩子最后一个孩子Dom遍历不起作用