отключить кнопку в JS - PullRequest
0 голосов
/ 28 июня 2018

Я играю в кликер И мне нужно было остановить нажатие кнопки, когда игрок купил ее. поэтому я попробовал

var money = 10000000;
var MoneyperClick = 1;

function myFunction() {
  var val = document.getElementById("YourMoney");
  val.innerHTML = money;
  document.getElementById("YourLevel").innerHTML = MoneyperClick;
}

function
upgrade(up, need) {
  if (money >= need) {
    money = money - need;
    MoneyperClick =
      MoneyperClick + up;
    alert("구매 성공");
  } else {
    alert("골드 부족");
  }
}
<body onload="myFunction()">
    <h1>MERVEL CLICKER GAME</h1>
    <br/>
    <input id="special" type="button" value="click" onclick="money = money+MoneyperClick; 
myFunction();" />
    <br/> STARLORD:money per click +1:need 100 money
    <input class="normal" id="starlord" type="button" value="buy" onclick="upgrade(1,100); myFunction();" />
    <br/> BABYGROOT:money per click +2:need 150 money
    <input class="normal" id="babygroot" type="button" value="buy" onclick="upgrade(2,150); myFunction(); " />
    <br/> MANTIS:money per click +2:need 300 money
    <input class="normal" id="mantis" type="button" value="buy" onclick="upgrade(2,300); myFunction();" />
    <br/> NEBULA:money per click +2:need 400 money
    <input class="normal" id="nebula" type="button" value="buy" onclick="upgrade(2,400); myFunction();" />
    <br/> HAWKEYE:money per click +3:need 700 money
    <input class="normal" id="hawkeye" type="button" value="buy" onclick="upgrade(3,700); myFunction();" />
    <br/> BLACKWIDOW:money per click +3:need 1500 money
    <input class="normal" id="blackwidow" type="button" value="buy" onclick="upgrade(3,1500); 
myFunction(); " />
    <br/>
    <h1>your money is <span id="YourMoney"></span></h1>
    <h1>your money per click is <span id="YourLevel"></span></h1>
    <h1> You can buy everything only once </h1>

Моя страница в действии: http://appletree -noamboy2006504805.codeanyapp.com / clicker.php

Как отключить кнопку "купить", если предмет приобретен?


ах! в кнопках было отключено свойство дело раскрыто спасибо всем, кто помог.

Ответы [ 3 ]

0 голосов
/ 28 июня 2018

Так что, если вы хотите отключить нажатую кнопку, передайте кнопку (this) в качестве параметра вашей функции upgrade(), например, такой: (просто):

JavaScript:
function upgrade(up, need, button) { button.disabled = true; }

HTML:
<input type="button" onclick="upgrade(1, 100, this)">

var money = 10000000;
var MoneyperClick = 1;

function myFunction() {
  var val = document.getElementById("YourMoney");
  val.innerHTML = money;
  document.getElementById("YourLevel").innerHTML = MoneyperClick;
}

function
upgrade(up, need, button) {
  if (money >= need) {
    button.disabled = true; // Added this line to disable the button that got clicked
    money = money - need;
    MoneyperClick =
      MoneyperClick + up;
    alert("구매 성공");
  } else {
    alert("골드 부족");
  }
}
<body onload="myFunction()">
  <h1>MERVEL CLICKER GAME</h1>
  <br/>
  <input id="special" type="button" value="click" onclick="money = money+MoneyperClick; 
myFunction();" />
  <br/> STARLORD:money per click +1:need 100 money
  <input class="normal" id="starlord" type="button" value="buy" onclick="upgrade(1,100, this); myFunction();" />
  <br/> BABYGROOT:money per click +2:need 150 money
  <input class="normal" id="babygroot" type="button" value="buy" onclick="upgrade(2,150,this); myFunction(); " />
  <br/> MANTIS:money per click +2:need 300 money
  <input class="normal" id="mantis" type="button" value="buy" onclick="upgrade(2,300,this); myFunction();" />
  <br/> NEBULA:money per click +2:need 400 money
  <input class="normal" id="nebula" type="button" value="buy" onclick="upgrade(2,400,this); myFunction();" />
  <br/> HAWKEYE:money per click +3:need 700 money
  <input class="normal" id="hawkeye" type="button" value="buy" onclick="upgrade(3,700,this); myFunction();" />
  <br/> BLACKWIDOW:money per click +3:need 1500 money
  <input class="normal" id="blackwidow" type="button" value="buy" onclick="upgrade(3,1500,this); 
myFunction(); " />
  <br/>
  <h1>your money is <span id="YourMoney"></span></h1>
  <h1>your money per click is <span id="YourLevel"></span></h1>
  <h1> You can buy everything only once </h1>
0 голосов
/ 28 июня 2018

В этом случае вы хотите использовать тег <button> вместо тега <input>.

<input class="normal" id="starlord" type="button" value="buy" onclick="upgrade(1,100);  myFunction();">

станет:

<button class="normal" id="starlord" onclick="upgrade(1,100);  myFunction(); this.disabled=true;">buy</button>

Как видите, я добавил this.disabled=true; в атрибуте onclick кнопки. Таким образом, он отключится при первом нажатии.

0 голосов
/ 28 июня 2018

Использовать либо document.getElementById("myBtn").disabled = true; или

 var x = document.getElementById("myBtn").disabled;
    document.getElementById("demo").innerHTML = x;

Для отключения кнопки

function disableBtn() {
    document.getElementById("myBtn").disabled = true;
}

function enableBtn() {
    document.getElementById("myBtn").disabled = false;
}
<button id="myBtn">My Button</button>
<br><br>

<button onclick="disableBtn()">Disable "My Button"</button>
<button onclick="enableBtn()">Enable "My Button"</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...