Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.10.2012, 21:12
Аспирант
Отправить личное сообщение для prowoke Посмотреть профиль Найти все сообщения от prowoke
 
Регистрация: 09.12.2010
Сообщений: 56

Пните меня, пожалуйста. Не могу создать функцию.
Здравствуйте. Вот у меня был повторяющийся код и чтобы он не повторялся я поместил его в функцию, получилось вот, что:
// Запускаем слайдшоу
	if ($('div#rotator ul li').length != 1) {
		rotateImg("rotator"); 	// Slider at aboutus
	}
	if ($('div#rotatorTop ul li').length != 1) {
		rotateImg("rotatorTop");
		theRotatorText();
	} 
	
});
function rotateImg(obj) {
	var obj = obj;
	theRotator();	
	function theRotator() {
		$('div#'+obj+' ul li').css({opacity: 0.0});
		$('div#'+obj+' ul li:first').css({opacity: 1.0});
		setInterval('rotate()',5000);
	}
	 
	function rotate() {    
		var current = ($('div#'+obj+' ul li.show')?  $('div#'+obj+' ul li.show') : $('div#'+obj+' ul li:first'));
		var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('div#'+obj+' ul li:first') :current.next()) : $('div#'+obj+' ul li:first'));    
		next.css({opacity: 0.0})
		.addClass('show')
		.animate({opacity: 1.0}, 1000);
		current.animate({opacity: 0.0}, 1000)
		.removeClass('show');
	}
}


При запуске отладчик пишет:
Uncaught ReferenceError: rotate is not defined
. Ну как он не defined, если она определяется.
Ответить с цитированием
  #2 (permalink)  
Старый 22.10.2012, 21:32
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

function test_two() {
   alert('Test Two');
}
      
function test() {
   setTimeout('test_one()', 500); // Вы так используете, не работает.
   setTimeout('test_two()', 1000); // вызываем функцию доступную в контексте window.
   setTimeout(test_three, 1500); // Передаем функцию которая будет выполнятся.
        
   function test_one() {
      alert('Test One');
   }
        
   function test_three() {
      alert('Test Three');
   }
}
      
test();


setTimeout выполняется в контексте window.
Так как вы создаете функцию внутри другой, то только там она и будет видна. Либо создавайте функцию по другому, либо указывайте ее по другому. См. примеры выше
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай

Последний раз редактировалось walik, 22.10.2012 в 21:35.
Ответить с цитированием
  #3 (permalink)  
Старый 22.10.2012, 21:35
Аватар для a_l
a_l a_l вне форума
Кандидат Javascript-наук
Отправить личное сообщение для a_l Посмотреть профиль Найти все сообщения от a_l
 
Регистрация: 15.09.2011
Сообщений: 143

setInterval(rotate,5000);
И лучше используйте setTimeout.
Ответить с цитированием
  #4 (permalink)  
Старый 22.10.2012, 22:04
Аспирант
Отправить личное сообщение для prowoke Посмотреть профиль Найти все сообщения от prowoke
 
Регистрация: 09.12.2010
Сообщений: 56

Сообщение от a_l Посмотреть сообщение
setInterval(rotate,5000);
И лучше используйте setTimeout.
Чем лучше? За советы спасибо всем. У меня всё получилось сделать.
Ответить с цитированием
  #5 (permalink)  
Старый 22.10.2012, 22:17
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Сообщение от prowoke
Чем лучше?
Реальная пауза в setInterval
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
NinjaKit. Не могу переопределить функцию... bodqhrohro Events/DOM/Window 3 23.10.2012 13:58
Не могу создать вложенный DIV для отступа-не учитывается padding/margin род. элемента xintrea (X)HTML/CSS 8 24.09.2012 15:58
Не могу вызвать функцию из тела, подскажите что не так Rentony Элементы интерфейса 3 15.12.2011 13:43
Не могу запустить функцию по onclick Sadist_dead Элементы интерфейса 3 26.11.2011 16:35
Помогите пожалуйста не могу вывести информацию из mysql Геворг Серверные языки и технологии 4 01.03.2011 20:24