Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.08.2011, 00:26
Новичок на форуме
Отправить личное сообщение для Tonik a.k.a Mademax Посмотреть профиль Найти все сообщения от Tonik a.k.a Mademax
 
Регистрация: 20.08.2011
Сообщений: 2

Цикл while + немного jquery
Здравствуйте, есть скрипт который выставляет на событие нажатия кнопок функции:
$(document).ready(function () {
		var i = 0; // создаем переменную i
		while(i < 4){ // делать пока i меньше 4
			$("#test"+i).click(function(){viewInfo(i)}) // для каждой кнопки выставлем функцию с параметром её id
			i++ //увеличиваем счетчик
		}
	
		
		})
	function viewInfo(id) //собственно ,сама функция вывода id
	{
		alert(id) 
	}

и вот сами кнопки
<button id='test1'></button>
<button id='test2'></button>
<button id='test3'></button>
<button id='test4'></button>

при нажатии на любую кнопку выводит "4".Почему?
Цикл for аналогично...
Ответить с цитированием
  #2 (permalink)  
Старый 21.08.2011, 00:29
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

почитайте статью "замыкания", это поможет
Ответить с цитированием
  #3 (permalink)  
Старый 21.08.2011, 00:33
Новичок на форуме
Отправить личное сообщение для Tonik a.k.a Mademax Посмотреть профиль Найти все сообщения от Tonik a.k.a Mademax
 
Регистрация: 20.08.2011
Сообщений: 2

не очень помогло,но что нибудь по данному примеру посоветуйте
Ответить с цитированием
  #4 (permalink)  
Старый 21.08.2011, 00:43
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

$(document).ready(function () {
		var i = 0; // создаем переменную i
		while(i < 4){ // делать пока i меньше 4
*!*
(function(i){
*/!*
			$("#test"+i).click(function(){viewInfo(i)}) // для каждой кнопки выставлем функцию с параметром её id
*!*
})(i++);
*/!*	
	}
	
		
		})
	function viewInfo(id) //собственно ,сама функция вывода id
	{
		alert(id) 
	}

Последний раз редактировалось melky, 21.08.2011 в 12:08.
Ответить с цитированием
  #5 (permalink)  
Старый 21.08.2011, 11:07
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

melky, бесконечный цикл.
Нужно поменять строки 6 и 7 местами.
Ответить с цитированием
  #6 (permalink)  
Старый 21.08.2011, 12:08
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

угу. поменял

не подумал об этом )
Ответить с цитированием
  #7 (permalink)  
Старый 21.08.2011, 14:05
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

$(document).ready(function () {
  for ( var i = 4; i--; ) {
    $( "#test" + i ).bind( 'click', { id : i }, function ( e ) { viewInfo( e.data.id ); })
  }
};
function viewInfo( id ) {
  alert( id ) ;
}
Ответить с цитированием
  #8 (permalink)  
Старый 04.09.2011, 19:37
Аватар для Андрей38
Профессор
Отправить личное сообщение для Андрей38 Посмотреть профиль Найти все сообщения от Андрей38
 
Регистрация: 11.12.2010
Сообщений: 261

Сообщение от B@rmaley.e><e Посмотреть сообщение
melky, бесконечный цикл.
Нужно поменять строки 6 и 7 местами.
$(document).ready(function () {
var i = 0; // создаем переменную i
while(i < 4){ // делать пока i меньше 4
(function(i){
$("#test"+i).click(function(){viewInfo(i)}) // для каждой кнопки выставлем функцию с параметром её id
})(i++);
}


})
function viewInfo(id) //собственно ,сама функция вывода id
{
alert(id)
}


..как остановить по достижении 4 ? У меня не получается.
И самое нужное_ можна ли с помощью while сделать ---
<div id='text'> xxx</div>
var i=$('#text').text()
var2=('xxx')

while(i !=var2){
alert('в это время работает другое ')
}

если оно ( while )только с числами работает,что тогда применить ? Или такое сэтИнтервалом решеться?Но и его не могу ОСТАНОВИТЬ если 2 переменные стают одинаковыми...Или применить сэтИнтервалом с IF ?..Тогда не могу остановить после его запуска
__________________
http://www.youtube.com/watch?feature...&v=cz0uN1ZNuM0
История не в теории ,а по факту

Последний раз редактировалось Андрей38, 17.09.2011 в 10:43.
Ответить с цитированием
  #9 (permalink)  
Старый 04.09.2011, 20:27
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

if (i == 4) break
например
Ответить с цитированием
  #10 (permalink)  
Старый 04.09.2011, 20:33
Аватар для Андрей38
Профессор
Отправить личное сообщение для Андрей38 Посмотреть профиль Найти все сообщения от Андрей38
 
Регистрация: 11.12.2010
Сообщений: 261

Сообщение от melky Посмотреть сообщение
if (i == 4) break
например
Огромнейшее СПАСИБО !сейчас подставлю

http://www.w3schools.com/JS/js_break.asp
http://myrusakov.ru/cikly-javascript.html

http://www.codenet.ru/webmast/js/operators.php
__________________
http://www.youtube.com/watch?feature...&v=cz0uN1ZNuM0
История не в теории ,а по факту

Последний раз редактировалось Андрей38, 17.09.2011 в 11:04.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамически загружаемая jQuery и jQuery-функции в одном файле 67bytes Общие вопросы Javascript 6 06.03.2013 09:01
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 22:29
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55
JQuery + FireFox NOOB jQuery 4 02.11.2009 18:16