Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.06.2012, 13:02
??? ??? вне форума
Интересующийся
Отправить личное сообщение для ??? Посмотреть профиль Найти все сообщения от ???
 
Регистрация: 31.12.2011
Сообщений: 16

if...else не корректно работает
добрый день уважаемые форумчане.
вот возникла такая проблема:
оператор ветвления в цикле срабатывает только один раз, тогда как должен срабатывать постоянно....остальной код работает, а вот собственно и он:
ns4 = (document.layers)? true:false
   ie4 = (document.all)? true:false
   var mouse_x = y = 0;
   function init() {
	if (ns4) {document.captureEvents(Event.MOUSEMOVE);}
	document.onmousemove=mousemove;
   }
   function mousemove(event) {
	
	if (document.attachEvent != null) {
	 mouse_x = window.event.clientX;
	 mouse_y = window.event.clientY;
    } else if (!document.attachEvent && document.addEventListener) {
	 mouse_x = event.clientX;
	 mouse_y = event.clientY;
	}
	status="x = " + mouse_x + ", y = " + mouse_y;
	document.getElementById('xy').innerHTML = "x = " + mouse_x + ", y = " + mouse_y;
   }
  init()
  var i = 250, j = 500;
  function f_img() {
   document.getElementById('img0').style.width = document.getElementById('img0').width + 2 + 'px';
   document.getElementById('img0').style.height = document.getElementById('img0').height + 2 + 'px';
   
   i -= 1;
   j -= 1;
   
   document.getElementById('img0').style.top = i + 'px';
   document.getElementById('img0').style.left = j + 'px';
   if (document.getElementById('img0').width == 300) {
    new_img();
   }
  }
  function new_img() {
   document.getElementById('img0').style.width = 1 + 'px';
   document.getElementById('img0').style.height = 1 + 'px';
   document.getElementById('img0').style.top = mouse_y + 'px';
   document.getElementById('img0').style.left = mouse_x + 'px';
   i = mouse_y;
   j = mouse_x;
  }


я имею ввиду последний оператор ветвления
if (document.getElementById('img0').width == 300) {
    new_img();
   }


вот он то и срабатывает только один раз.
в body у меня стоит
f_img();
   setInterval("f_img();",30);


короче говоря всё остальное работает исправно....и картинка увеличивается...

помогите пожалуйста разобраться.
заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 13.06.2012, 14:32
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

???, В этом месте,(строка 13) и в концовке оператора else, пробуйте добавить нужные скомки
} else { if (!

Безскобочная запись трактуется однозначно при однострочных операторах
Ответить с цитированием
  #3 (permalink)  
Старый 13.06.2012, 14:37
??? ??? вне форума
Интересующийся
Отправить личное сообщение для ??? Посмотреть профиль Найти все сообщения от ???
 
Регистрация: 31.12.2011
Сообщений: 16

Сообщение от Deff Посмотреть сообщение
???, В этом месте,(строка 13) и в концовке оператора else, пробуйте добавить нужные скомки
} else { if (!

Безскобочная запись трактуется однозначно при однострочных операторах
да это то тут причём??
последний оператор срабатывает только один раз. наверху всё исправно.

поясню:
есть картинка. она начинает увеличиваться. когда она достигает width = 300 она перемещается на место курсора и уменьшается до размеров 1х1.
вооот...
так первый раз и происходит, но когда она увеличивается второй раз ничего не происходит...и она растёт в бесконечность....вот в чём проблема...((

Последний раз редактировалось ???, 13.06.2012 в 15:05.
Ответить с цитированием
  #4 (permalink)  
Старый 13.06.2012, 16:28
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

попробуйте setInterval уменьшить...или в условии указать вместо == установите >=
Ответить с цитированием
  #5 (permalink)  
Старый 13.06.2012, 16:34
??? ??? вне форума
Интересующийся
Отправить личное сообщение для ??? Посмотреть профиль Найти все сообщения от ???
 
Регистрация: 31.12.2011
Сообщений: 16

Сообщение от lord2kim Посмотреть сообщение
попробуйте setInterval уменьшить...или в условии указать вместо == установите >=
чувак ты гений!!!!!
как я жестко ступил

document.getElementById('img0').style.width = document.getElementById('img0').width + 2 + 'px';

if (document.getElementById('img0').width == 300) {
new_img();
}

document.getElementById('img0').style.width = 1 + 'px';


второй раз же у меня получался всегда нечётный размер...
вот я долбан

спасибо)))))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не корректно работает jquery.uploadProgress evildevel AJAX и COMET 0 26.07.2011 21:14
Не корректно работает скрипт, прошу помощи rafka1 Общие вопросы Javascript 0 15.05.2011 15:02
Скрипт работает корректно везде, кроме IE 6 McS Events/DOM/Window 1 10.04.2011 15:37
не корректно работает с разными версиями веб betonka Events/DOM/Window 12 08.04.2011 12:45
Opera не корректно работает со скриптом Anat.nem Opera, Safari и др. 4 30.10.2009 13:39