2010-04-24 4 views
1

Я пытаюсь затухать элемент внутрь и наружу, но с небольшой паузой между ними он работает без паузы, но когда я добавляю паузу, используя функцию jQuery delay(), она просто останавливается после первого fadeOut();JQuery delay() - функция прерывает цикл?

Вот код:

$('#headerimage2').each(function(){ 
for(i=1;i<50;i++){ 
    $(this).fadeOut(1200).delay(1000).fadeIn(1000).delay(1000); 
    } 
}); 

Почему задержка() - функция (как первая и вторая) разорвать петлю?

ответ

4

Выстрел в темноте здесь, но вы уверены, что используете версию 1.4 библиотеки. Это новая функция этой версии.

+0

Я согласен с @BradBrening, может быть, вы не используете JQuery 1,4 – dkinzer

+0

Хорошо, я только что видел его. Drupal 6.16 все еще имеет 1.3.2, однако модуль обновления является alleady в альфа-состоянии. Могу ли я сделать это с помощью setTimeOut? Или, возможно, просто вставьте весь новый JQuery Libary в файлы drupal? – Rakward

+0

Я не familiar с Drupal, но если вы застряли с 1.3.2 библиотеки jQuery, вы можете использовать параметр обратного вызова функции fadeOut для определения функции, которая затем вызывает setTimeOut с fadeIn в качестве обратного вызова. Немного цепочки событий, но это должно сработать. – BradBrening

1

Ваш код, как вывешенные отлично работает в Firefox, Safari и хром с последними JQuery:

<!DOCTYPE html> 
<html> 
<head> 
    <style> 
div { width: 60px; height: 60px; float: left; } 
.first { background-color: #3f3; } 
</style> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 

<p><button>Run</button></p> 
<div id='headerimage2' class="first"></div> 
<script> 
    $("button").click(function() { 
    $('#headerimage2').each(function(){ 
    for(i=1;i<5;i++){ 
     $(this).fadeOut(100).delay(500).fadeIn(100).delay(500); 
     } 
    }); 
    }); 
</script> 
</body> 
</html> 
Смежные вопросы