2013-12-06 6 views
0

Во-первых, я хотел бы отметить, что это мой первый раз, когда я использую этот сайт, поэтому, если я что-то сделаю неправильно, извините. Во-вторых, я нахожусь промежуточным звеном в JavaScript, но на самом деле был на самом деле кодирован в течение 3 дней, и я использую его в инкрементной игре (больше для себя, чтобы учиться, чем других, так как там довольно много). Я делаю очень хорошо и больше узнаю, как иду.Javascript аргументы функции как переменные

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

<button onClick="getStorg(gargAmm,'gargAmm')"> Get Garage </button>Ammount: <span id="gargAmm">0<br /> 

Какого HTML, который песчанки функции:

var gargAmm = 0; 
function getStorg(buildAmm,buildID) 
{ 
    buildAmm = buildAmm + 1; 
    document.getElementById(buildID).innerHTML = buildAmm; 
} 

Дисплей будет «Количество:» перейти к одному, когда кнопка будет нажата, а затем киосков. Я попытался переставить всевозможные переменные и такие, но я просто не знаю, почему это не работает. Может ли кто-нибудь помочь?

+3

Приложить события в JavaScript, проще, меньше проблем, смотрите здесь https://developer.mozilla.org/en-US/ docs/Web/API/EventTarget.addEventListener – elclanrs

+1

Интересно, не обижайтесь, но как, в 2013 году, этот материал держится? Есть ли сайт-изгоев, который предназначен только для того, чтобы засеять гнев и дезинформацию? * Я имею в виду, кроме w3schools * ... – ZenMaster

+0

полезно знать все. Но только тогда, когда вы действительно узнаете все пути. –

ответ

0

Что вы делаете, вы используете глобальное переменное значение

var gargAmm = 0; 

Всякий раз, когда вы вызываете функцию он использует такое же значение, как ноль и увеличивает его. Итак, вы получаете значение как 1 и его не увеличиваете. Я пробовал другой подход, чтобы решить вашу проблему.

<button onClick="getStorg('gargAmm')"> 
     Get Garage 
    </button>Ammount: <span id="gargAmm">0</span><br /> 

Вот Javascript

function getStorg(buildID) 
    { 
     var d= document.getElementById(buildID); 
     var t= parseInt(d.innerText); 
     t=t+1; 
     document.getElementById(buildID).innerHTML = t; 
    } 

Здесь текст из диапазона берется и преобразуется в целое, а затем увеличивается значение и вставить обратно в промежуток.

Вот Рабочая скрипку http://jsfiddle.net/p8E4G/

+0

Да, это не только работает, но и очищает мой код. Как я сказал, я учился, как я иду, я не знал о parseInt (d.innerText); Thanks alot – Ozay34

+0

@ Ozay34 был вам полезна? – Gourav

+0

Это было более чем полезно, это сделало мой код более эффективным! – Ozay34

0

Простой:

function myFunc(a,b) { 
    b = b || 0; 

    // b will be set either to b or to 0. 
} 
Смежные вопросы