Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.07.2013, 16:24
Аватар для Айvan
Интересующийся
Отправить личное сообщение для Айvan Посмотреть профиль Найти все сообщения от Айvan
 
Регистрация: 06.04.2013
Сообщений: 26

Изменение массива функцией
Здравствуйте! Хотел сделать чтобы при нажатии кнопки менялся цвет объекта. Например 3 цвета и при нажатии на кнопку они меняются по кругу(одно нажатие - смена одного цвета, второе - следующий цвет и т.д.)

Долго дуплил, писал длинные коды, ничего не работало! В итоге понял, что проблема с функцией!
<button onClick="nu()">Надпись</button>

<script>


	var hy = ['1', '2', '3'];

function nu(huy) {

	hut = hy.splice(0, 1);
	
	alert(hy);
}
</script>

если вынести массив из функции, как на примере выше, то функция его не видит. Если объявить массив в самой функции, то при каждом нажатии массив обновляется и всегда отвечает "2,3".
Как сделать чтобы получить данные из массива и внести изменения в массив??

function color2() {
	
	
    var color = ['1', '2', '3'];
    var cString = color.join();
    var cStrigIf = cString.indexOf(i);
    var colorId = document.getElementById("square");
    var i = 1;
	
	
	for (var i = 1;; i++) {
		
		if (cStringIf(i) == true) {
			color.splice(0, 1);
			return i;
		}
        else {
                continue;
        }
}
	
	
		
		color.splice(i-1, 0, i);
		
		switch(i) {
			case 1 :
			colorId.style.backgroundColor = "white"
			;
			break;
			
			case 2 :
			colorId.style.backgroundColor = "gold"
			;
			break;
			case 3 :
			colorId.style.backgroundColor = "lime"
			;
			break;
		}
		
		if (i > 3) {
			
			color.splice(0);
		}
	
}


Вот, так я представлял "рабочий" код, но все оказалось сложно из-за моих плохих знаний языка. Но я только начинаю его учить и решил сделать такую программу, думая, что все просто!

Последний раз редактировалось Айvan, 29.07.2013 в 16:26.
Ответить с цитированием
  #2 (permalink)  
Старый 29.07.2013, 16:28
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> 
<html> <head>

</head> 
<body> 
<div style="width: 100px; height: 100px; background-color: red;"></div>

	<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
	<script type="text/javascript">
var colors = ['red', 'silver', 'yellow'];
var index = 0;

$('div').click(function()
	{
	index++;
	if (index == colors.length)
		index = 0;
	$(this).css('background', colors[index]);
	});
	</script>
</body> 
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2013, 16:34
Аватар для Айvan
Интересующийся
Отправить личное сообщение для Айvan Посмотреть профиль Найти все сообщения от Айvan
 
Регистрация: 06.04.2013
Сообщений: 26

Спасибо! но тут на jquery, а его я тем более не знаю! Нужно порыться в гугле и разобрать код. Еще раз спасибо! А на чистом JS можно реализовать?
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2013, 16:37
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

та какая разница с jquery, без него.. код сильно не изменится:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> 
<html> <head>

</head> 
<body> 
<div style="width: 100px; height: 100px; background-color: red;" onclick="divClick(this);"></div>

	<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

	<script type="text/javascript">
var colors = ['red', 'silver', 'yellow'];
var index = 0;

function divClick(ths)
	{
	index++;
	if (index == colors.length)
		index = 0;
	ths.style.background = colors[index];
	};
	</script>
</body> 
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 29.07.2013, 16:39
Аватар для Айvan
Интересующийся
Отправить личное сообщение для Айvan Посмотреть профиль Найти все сообщения от Айvan
 
Регистрация: 06.04.2013
Сообщений: 26

Гигантское спасибо! Просто меня $ всякие смущают! Хочу разобраться, а пока ток простой js учу!
СПАСИБО!
Ответить с цитированием
  #6 (permalink)  
Старый 29.07.2013, 16:48
Аватар для Айvan
Интересующийся
Отправить личное сообщение для Айvan Посмотреть профиль Найти все сообщения от Айvan
 
Регистрация: 06.04.2013
Сообщений: 26

как сделать управление кнопкой???
Ответить с цитированием
  #7 (permalink)  
Старый 29.07.2013, 17:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ты хочешь радиоуправляемую кнопку?
Ответить с цитированием
  #8 (permalink)  
Старый 29.07.2013, 17:54
Аватар для Айvan
Интересующийся
Отправить личное сообщение для Айvan Посмотреть профиль Найти все сообщения от Айvan
 
Регистрация: 06.04.2013
Сообщений: 26

именно!
я хочу чтобы цвет div менялся при нажатии на кнопку
Ответить с цитированием
  #9 (permalink)  
Старый 29.07.2013, 19:17
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> 
<html><head></head> 
<body> 
<div style="width: 100px; height: 100px; background-color: red;" id="block"></div>
<input type="radio" name="color" onclick="divClick(0);" checked="checked"><br>
<input type="radio" name="color" onclick="divClick(1);"><br>
<input type="radio" name="color" onclick="divClick(2);"><br>

	<script type="text/javascript">
var block = document.getElementById('block');
var colors = ['red', 'silver', 'yellow'];
var index = 0;

function divClick(ind)
	{
	block.style.background = colors[ind];
	};
	</script>
</body> 
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 31.07.2013, 07:11
Аватар для Айvan
Интересующийся
Отправить личное сообщение для Айvan Посмотреть профиль Найти все сообщения от Айvan
 
Регистрация: 06.04.2013
Сообщений: 26

Спасибо, но нужна именно кнопка!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен цикл для создания огромного массива apish Общие вопросы Javascript 2 20.09.2012 16:10
Сортировка массива по ключу RazZzeR Элементы интерфейса 9 21.07.2012 19:31
изменение типа массива z700i Общие вопросы Javascript 9 18.06.2012 16:14
Копирование массива пользовательской функцией Serpanok Events/DOM/Window 2 30.09.2011 13:16
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53