2016-11-04 9 views
0

Я только начал создавать свою игру с маленьким кликером, и я застрял в тупике. У меня есть кол-во кликов, и я хочу создать кнопку, которая изменяет число, на которое увеличивается счет.Как изменить значение внутри функции?

<!DOCTYPE html> 
<html> 
    <head> 
     <title> Rust Clicker </title> 

     <link rel="stylesheet" href="css.css"> 

     <link rel="icon" src="icon.ico"> 
    </head> 

    <body> 
     <div onClick="onClick()"> 

      <img src="rust.jpg" id="click" value="Click" /> 

     </div> 

     <script src="picture.js"></script> 

     <script src="clicks.js"></script> 

      <p>Clicks: <a id="clicks">0</a></p> 

      <button onClick="">Click me to click twice!</button> 

    </body> 
</html> 

К нижней части HTML У меня есть кнопка, которую я хочу, чтобы изменить значение, что количество кликов идет вверх в моем файле clicks.js. Ниже в clicks.js:

var clicks = 0; 
function onClick() { 
    clicks += 1; 
    document.getElementById("clicks").innerHTML = clicks; 
}; 

Я хочу сделать кнопку в моем HTML, чтобы увеличить «щелчки + = 1;» на «клики + = 2», но не знаю, как это сделать.

+0

Внутри 'onClick()' вы находитесь в другом пространстве, чем снаружи. 'clicks'' undefined' внутри области 'onClick()'. Решение: сделайте 'clicks' global, добавив его к (например) объекту' window'. – Koen

+1

@Koen 'clicks'is уже глобальный. Он определяется вне функции. И это не имеет никакого отношения к вопросу ОП. – Turnip

+0

'Я хочу, чтобы кнопка в моем HTML увеличивала число кликов + = 1; на «clicks + = 2» ', если я правильно понимаю, что вы хотите добавить 2 в переменную click, вы можете добиться этого, установив глобальную переменную' clicksIncrement = 1' и заменив 'clicks + = 1;' на 'clicks + = clickIncrement' и где-то вам нужно будет увеличивать 'clickincrement' var. –

ответ

3

Хотите, чтобы событие click изменило саму функцию?

Если это так, я не уверен, что это может быть сделано. Я мог ошибаться, так как я все еще начинаю как ты. :)

Если изменение вызвано нажатием специфично к элементу, который кликнул, вы могли бы сделать следующее:

var clicks = 0; 

function onClick(x) { 
    clicks += x; 
    document.getElementById("clicks").innerHTML = clicks; 
}; 

Тогда для вашей кнопки вы можете сделать:

<button onClick="onClick(2)">Click me to click twice!</button> 

... и в других местах, например:

<div onClick="onClick(1)"> 

    <img src="rust.jpg" id="click" value="Click" /> 

</div> 

за одним щелчком мыши и так далее.

Надеюсь, это поможет в некотором роде :)

Смежные вопросы