Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jQuery fadeIn() (https://javascript.ru/forum/jquery/58966-jquery-fadein.html)

рони 21.10.2015 13:01

Цитата:

Сообщение от annie88
я не знаю как это обойти. У меня объекты с этими классами

зачем дважды писать один и тотже класс?
Цитата:

Сообщение от annie88
я не совсем понимаю, что вы хотите сказать.

в макете ваша функция someFunction срабатывает всего 1 раз , смотрите для контроля содержимое .first через 17 секунд -- более оно не изменится.

annie88 21.10.2015 13:25

Цитата:

Сообщение от рони
зачем дважды писать один и тотже класс?

у объектов два разных класса.
Спасибо, получается дело совсем в другом. Скорее всего что-то не так с самой someFunction:-? .

annie88 21.10.2015 14:08

упс.. извините, не сразу заметила, отсюда и непонимание
Цитата:

Сообщение от annie88
$('.class_2, .class_2')

правильно
$('.class_1, .class_2')

это два разных класса:-?

рони 21.10.2015 14:21

annie88,
тогда можно так
var n = 0;
function someFunction()
{
   if(n++) return;
//ваш код
}

annie88 21.10.2015 14:22

я переписала вызов функции в таком виде:
$('.class_1, .class_2').stop().delay(10000).fadeOut(5000,function(){   
                 for(var i = 0; i < someArray.length; i++)
                  {
                    document.getElementsByClassName('someClass')[i].innerHTML = someArray[i].innerHTML;
                   } 
          }).fadeIn(5000);

Может ли наличие цикла повлиять на количество вызовов?
функция вызывается только в этом месте и нигде больше и почему-то срабатывает someArray.length+1 раз

рони 21.10.2015 14:25

Цитата:

Сообщение от annie88
Может ли наличие цикла повлиять на количество вызовов?

на количество вызовов влияет только количество элементов '.class_1, .class_2' сколько их , столько раз и сработает callback -- в примере ниже функция сработает 3 раза
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  div  {
     height: 100px;
     width: 100px;
      background-color: #D2B48C;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
$(function(){
var n = 1;
function someFunction()
{
   $('.first').html(n++)
}
$('.class_1,.class_2').stop().delay(12000).fadeOut(5000,someFunction).fadeIn(5000);
});


  </script>
</head>

<body>



<div class='first'>

</div>
<div class='class_1'>

</div>
<div class='class_1'>

</div>
<div class="class_2">
</div>


</body>

</html>

annie88 21.10.2015 14:34

ОГРОМНОЕ ВАМ СПАСИБО!!!!!

так и знала, что что-то упускаю!
у меня объектов первого класса получилось someArray.length штук! отсюда и вызовы!
Я почему-то думала, что с элементами одного класса будут обращаться как к единому целому:blink:


Часовой пояс GMT +3, время: 20:30.