Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное прибавление при клике (https://javascript.ru/forum/misc/37840-regulyarnoe-pribavlenie-pri-klike.html)

Макс Тирдатов 10.05.2013 15:03

Регулярное прибавление при клике
 
Пожалуйста, скиньте код, который заставит при каждом нажатие на кнопку "+1" число рядом с ней увеличиться на один.

+ (дополнительно) Как сделать так, чтобы прибавлять можно было до десяти, а когда уже 10, чтобы появлялся alert с каким-нибудь текстом типа "Поздравляю! Вы досчитали до 10" и "игра" начиналась заново?

dmitriymar 10.05.2013 15:15

Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.

Макс Тирдатов 10.05.2013 15:23

dmitriymar, я прошёл, на мой взгляд, всё необходимое для этого, хотя часть в другом учебнике (в формате видео). Однако не один из испробованных мной путей не сработал, прибавлялось почему-то только до одного.
__________________
К сожалению, на самом деле нет. Но те, в кого мы верим, всегда с нами :)

skfyann 10.05.2013 15:37

Макс Тирдатов,
Скиньте код, поправим, увидите ошибку.

_0_ 10.05.2013 15:39

dmitriymar, не будьте таки строгим, у всех такие вопросы возникали в самом начале,
Макс, что у тебя за игра? как ты планируешь ее реализовать?

ruslan_mart 10.05.2013 15:40

HTML:
<input type="button" value="+1" onclick="addNum()" />
<span id="add_num">0</span>


javascript:
var elem = document.getElementById('add_num'), num = +elem.innerHTML;

function addNum()
{
   elem.innerHTML = num++;
   if(num == 10)
   {
      alert('Вы досчитали до 10!');
      num = -1;
   }
}

_0_ 10.05.2013 15:44

elem.innerHTML - возвращает строку, попробуй parseInt(elem.innerHTML)

ruslan_mart 10.05.2013 15:46

_0_,
Цитата:

Сообщение от Ruslan_xDD
+elem.innerHTML;

Число возвращает.

_0_ 10.05.2013 15:51

:thanks:

dmitriymar 10.05.2013 16:09

Цитата:

Сообщение от _0_
dmitriymar, не будьте таки строгим, у всех такие вопросы возникали в самом начале,

вот по этому, когда не знал об фаирбаге и подобных и даже консоли, вставлял алерты и отлаживал каждый шаг

_0_ 10.05.2013 16:22

Да, но для меня с JQuery сложновато отладочные инструменты использовать, у вас есть какой-нибудь совет?

Макс Тирдатов 10.05.2013 16:27

Ruslan_xDD,
У меня почему-то не работает, но логику я, в общем-то, понял. Попробую исправить. Большое спасибо.

skfyann 10.05.2013 16:38

_0_,
Не используйте jQuery :-D

ruslan_mart 10.05.2013 16:46

Макс Тирдатов, извиняюсь :)

var elem = document.getElementById('add_num'), num = +elem.innerHTML;

function addNum()
{
	num++;
	elem.innerHTML = num;
	if(num == 10)
	{
		alert('Вы досчитали до 10!');
		num = -1;
	}
}


Вот так работает, проверял.

dmitriymar 10.05.2013 16:53

Цитата:

Сообщение от _0_
Да, но для меня с JQuery сложновато отладочные инструменты использовать

да щаз. скажите это разработчикам инструментов и модулей их для джиквери.
Цитата:

Сообщение от _0_
у вас есть какой-нибудь совет?

Цитата:

Сообщение от dmitriymar
вот по этому, когда не знал об фаирбаге и подобных и даже консоли, вставлял алерты и отлаживал каждый шаг


Макс Тирдатов 10.05.2013 17:08

Ruslan_xDD, с небольшим исправление добился нужного результата:
function addNum(){
var elem = document.getElementById('add_num'), num = +elem.innerHTML;
num++;
elem.innerHTML = num;
if(num == 10){
alert('Вы досчитали до 10!');
elem.innerHTML = (num = 0);
}
}

Большое вам спасибо! ;)

ruslan_mart 10.05.2013 17:16

Цитата:

Сообщение от Макс Тирдатов
var elem = document.getElementById('add_num'), num = +elem.innerHTML;

Лучше всё-таки это вынести за функцию. :)

Макс Тирдатов 10.05.2013 17:32

Ruslan_xDD,
Когда переменные за функцией, у меня почему-то ничего не работает. :-?

ruslan_mart 10.05.2013 17:37

Макс Тирдатов, Вы наверное что-то не так делаете :)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>

<body>
<input type="button" value="+1" onclick="addNum()" />
<span id="add_num">0</span>

<script type="text/javascript">
// <![CDATA[
var elem = document.getElementById('add_num'), num = +elem.innerHTML;
 
function addNum()
{
    num++;
    elem.innerHTML = num;
    if(num == 10)
    {
        alert('Вы досчитали до 10!');
        elem.innerHTML = num = 0;
    }
}
// ]]>
</script>
</body>
</html>

Макс Тирдатов 10.05.2013 17:53

Ruslan_xDD,
Да, вы правы. Я делал скрипт выше кнопки и текста. Теперь всё нормально :yes:

ruslan_mart 10.05.2013 17:54

Макс Тирдатов, ну я так и подумал. :)


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