提问者:小点点

在使用jQuery更改div后获取div的原始值


我在尝试重现一个我见过的游戏机械师。机械师是个装枪的人。

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

如果你点击并按住“.武器”x时间,那么它就会进行重装。

问题是,当我做任何事情时,总是有很多---当我想重新装入武器3时,例如,我不知道如何获得那个div(“.warm”)开始的“ammo”的原始值。

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

最让我困惑的是jQuery$(this)。

例如,类“.武器”的5个div我知道你可以通过一个click函数(或其他任何东西)来隐藏类“.武器”,这取决于你点击的div中的哪一个,而不是全部隐藏它们。但对于我试图用var做的事情,显然是不一样的,反正我不认为是这样的。

我非常肯定,除了我强调的问题之外,所有其他的事情都做得不对,所以如果你想让我知道它有多糟糕,请放心,LOL。

不知道这是否有意义,因为我也不擅长解释自己。(反正不在文本中)

如果你想帮忙,我需要解释任何进一步的,请让我知道,并感谢您甚至阅读了这一点,如果你做了。:)

亲切的问候

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);
    }
  });

});

共1个答案

匿名用户

向标记为“maxammo”的元素添加一个属性。然后可以使用element.getAttribute(“maxammo”)获取原始的ammo值。