【问题标题】:Getting the original value of a div after changing it with jQuery使用 jQuery 更改 div 后获取 div 的原始值
【发布时间】:2021-06-08 13:02:17
【问题描述】:

我正在尝试重新创建我见过的游戏机制。机械师是装枪的。

目前,我已经设置好了,所以当你点击一个具有“.weapon”类的 div 时,它会倒计时“弹药”,如果你到达 0,它会说没有弹药。

如果您单击并按住“.weapon” x 时间,它将重新加载。

当我做任何事情时总是有很多问题-_-例如,当我想重新加载武器 3 时,我不知道如何获取那个 div( ".weapon") 开头。

我尝试在 var 中设置值,但我不确定这是否需要在对象或类似的东西中完成?

除了一切之外,最让我困惑的是 jQuery $(this)。

例如 5 个具有“.weapon”类的 div 我知道您可以根据您单击的哪个div而不是全部隐藏它们来单独隐藏类“.weapon”的单击功能(或任何其他功能)。但是对于我试图用 var 做的事情,显然是不一样的,我不认为是这样。

我很确定除了我要强调的问题之外的所有其他事情也没有正确完成,所以如果你想让我知道它有多糟糕,请随时大声笑。

不确定这是否有意义,因为我也不擅长解释自己。 (反正不是文字)

如果您想提供帮助并且我需要进一步解释任何事情,请告诉我,如果您愿意阅读本文,请告诉我。

HTML

<div id="wrapper">
  <div class="weapon center">
    <div class="ammo">5</div>
  </div>
  <div class="weapon center">
    <div class="ammo">8</div>
  </div>
  <div class="weapon center">
    <div class="ammo">10</div>
  </div>
  <div class="weapon center">
    <div class="ammo">12</div>
  </div>
  <div class="message"></div>
</div>

CSS

#wrapper{
  width:40%;
  margin:30px auto;
}

.weapon{
  float:left;
  width:80px;
  height:80px;
  border: 2px dashed #000;
  padding:5px;
  margin:5px;
  line-height:80px;
  text-align:center;
}

jQuery

$(document).ready(function(){

  var n;
  var currentReload = 0;
  var reloaded = false;

  $('.weapon').ready(function(){
    bb = $(this);
    bcurrentAmmo = bb.find('.ammo').html();
  });

  function reload(bb,bcurrentAmmo) {
    if(currentReload <= 2){
      currentReload++;
    }else{
      bb.find('.ammo').html(bcurrentAmmo);
      reloaded = true;
      clearInterval(n);
    }
  }

  $('.weapon').mousedown(function(){
    reloaded = false;
    n = setInterval(function() { reload(bb,bcurrentAmmo);}, 100);
  }).mouseup(function() {
    currentReload = 0;
    clearInterval(n);
  });

  $('.weapon').click(function(){
    if(reloaded == false){
      b = $(this);
      currentAmmo = b.find('.ammo').html();
      if(currentAmmo >= 1){
        currentAmmo--;
      }else{
        $('.message').html("No Ammo! Click & Hold To Reload")
      }
      b.find('.ammo').html(currentAmmo);
    }
  });

});

【问题讨论】:

    标签: javascript jquery css class object


    【解决方案1】:

    为标记为“maxAmmo”的元素添加一个属性。然后您可以使用element.getAttribute("maxAmmo") 获取原始弹药值。

    【讨论】:

    • 当我运行它时,这似乎给了我同样的问题。我认为它正在覆盖值。
    猜你喜欢
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多