2015-10-02 4 views
0

У меня есть следующие HTMLJavascript, добавляющий неверно?

HTML

<h1 id="total"></h1> 
<div id="option1" onclick="doMath()">Option 1</div> 
<div id="option2" onclick="doMath()">Option 2</div> 

И следующий Javascript
JS

var basePrice = 0; 
    var optiononePrice = 5; 
    var optiontwoPrice = 10; 

    function doMath() { 
     $("#option1").click(function() { 
      basePrice += 5; 
     }); 
     $("#option2").click(function() { 
      basePrice += 10; 
     }); 
    }; 
    $("#total").html(basePrice); 

Когда пользователь нажимает на DIV элемент, цена должна добавить общая сумма, но это то, что происходит:

Например, пользователь нажимает кнопку option1. Базовая цена будет печатать «5», но когда они снова нажмут параметр1, базовая цена будет идти от «5» до «15», а затем от «15» до «30» и будет проходить каждый раз. То же самое с option2, оно начинается с «10», затем переходит от «10» в «30» и так далее.

Что происходит, как я должен это исправить?

+5

Вы держите на добавление слушателей на каждый клик, так и с каждой мыши функция вызывается другой время. Все, что вам нужно сделать, это поместить все на 'doMath' снаружи, удалить' doMath' и удалить 'onclick = doMath()'. – MinusFour

+0

Разделите doMath на два метода и посмотрите, что произойдет. – ergonaut

ответ

2

вы можете попробовать этот код

HTML

<h1 id="total"></h1> 
<div id="option1">Option 1</div> 
<div id="option2">Option 2</div> 

Javascript

var basePrice = 0; 
var optiononePrice = 5; 
var optiontwoPrice = 10;  

    $("#option1").click(function() { 
     basePrice += 5; 
    }); 
    $("#option2").click(function() { 
     basePrice += 10; 
    }); 

$("#total").html(basePrice); 
+0

Отлично! Спасибо, я выберу это как лучший ответ за 6 минут (когда смогу) – burger97979