Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   увеличение счетчика по клику (https://javascript.ru/forum/events/49713-uvelichenie-schetchika-po-kliku.html)

dozer 25.08.2014 22:42

увеличение счетчика по клику
 
Всем привет! Есть две кнопки, образно говоря одна плюс, другая минус. Есть счетчик, который по умолчанию = 0; При клике по кнопка счетчик или увеличивается или уменьшается соответственно. Мой код прото начинает прогонять цикл до бесконечности, падает браузер. Были и другие варианты, без цикла for, но все равно не пашет ...

<script type="text/javascript">
function func() {
var count = 0;

for (var i = 0; i=1;i++) {
var plusButton = document.getElementsByClassName("button_plus");
var minusButton = document.getElementsByClassName("button_minus");
if (document.onclick = plusButton) {
count+=i;
console.log(count);



} else if (document.onclick = minusButton) {

count -=i;
console.log(count);
}}
};


</script>
<button type="button" class = "button_plus" onclick="func()">button plus</button>
<button type="button" class="button_minus" onclick="func()">button minus</button>

ksa 25.08.2014 23:17

Цитата:

Сообщение от dozer
без цикла for

Цикл тут точно ни к чему... :)
Клацнул по кнопке - сделал инкремент или декремент какого-то значения, вот и все...

dozer 26.08.2014 00:19

function func() {
        var count = 0;
            var plusButton = document.getElementsByClassName("button_plus");
            var minusButton = document.getElementsByClassName("button_minus");
            if (document.onclick = plusButton) {
                count++;
                console.log(count);
        } else if (document.onclick = minusButton) {

                count--;
                console.log(count);
            }
    };


так тоже не пашет. В консоле цифра 1 вне зависимости какую кнопку клацаю

ksa 26.08.2014 08:21

Цитата:

Сообщение от dozer
так тоже не пашет

Жуть какая-то... :blink:

Как вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
var count=0;
function inc(N) {
	count+=N;
	console.log(count);
};
</script>
</head>
<body>
<button type="button" class = "button_plus" onclick="inc(1)">plus</button>
<button type="button" class="button_minus" onclick="inc(-1)">minus</button>
</body>
</html>

dozer 26.08.2014 12:52

да, этот вариант работает, спасибо за преступление, как говорится :)
Мой код частично заработал, когда счетчик вынес в глобальную зону. По нажатию соответствующей кнопки он плюсует, но потом не отнимает. Как то так:
<script type="text/javascript">
    var count = 0;
    function func() {
            var plusButton = document.getElementsByClassName("button_plus");
            var minusButton = document.getElementsByClassName("button_minus");
            if (document.onclick = plusButton) {
                count++;
                console.log(count);
        } else if (document.onclick = minusButton) {
                count--;
                console.log(count);
            }
    };</script>

BETEPAH 26.08.2014 13:02

Цитата:

Сообщение от dozer
.getElementsByClassName

возвращает массив.
Цитата:

Сообщение от dozer
if (document.onclick = plusButton)

чего-чего?!


Часовой пояс GMT +3, время: 05:46.