SlideDown затем вызвать пользовательскую функцию - PullRequest
1 голос
/ 18 марта 2010

Трудно понять, почему моя функция вызывается дважды.

Я пытаюсь определить, когда вызывается радиокнопка (intRev_yes), проверить, является ли div пустым, сдвинуть вниз другой div и затем вызвать функцию custome, которая динамически создает поле даты.

if(this.id=="intRev_yes"){
 if($('div#mainField').is(':empty')){
  $('.intRevSections').slideDown('slow',function(){
   current=-1;
   addIrField();
  });
 }   
}

Когда я оповещаю об этом на каждом этапе, после достижения конца (т. Е. AddIrField ()) сценарий возвращается в раздел slideDown () и вызывает addIrField (). Я не могу понять, почему нет петель. current используется в качестве индекса для поля даты.

Ответы [ 5 ]

1 голос
/ 18 марта 2010

Другой случай будет:

Если у вас есть два элемента с именем класса .intRevSections, параметр slideDown запускается дважды, а функция обратного вызова запускается дважды ...

Надеюсь, это поможет, Синан.

1 голос
/ 18 марта 2010

Вы, вероятно, вызываете это из события Dom, которое пузырится. См. http://en.wikipedia.org/wiki/DOM_events, чтобы проверить, так ли это.

0 голосов
/ 04 июня 2013

Jquery animate complete работал для меня

 $('.intRevSections:first').slideDown('slow',function(){
    complete: addIrField();
 });
0 голосов
/ 18 марта 2010

попробуйте это:

if (this.id == "intRev_yes") {
        if ($('div#mainField').is(':empty')) {
            $('.intRevSections').slideDown('slow', function(event) {
                event.stopPropagation();
                current = -1;
                addIrField();
            });
        }
    }
0 голосов
/ 18 марта 2010

Синан уже обнаружил проблему, но фактически не отправил ответ. ответ:

Узнайте, почему у вас есть два элемента div (если вы создаете их из JS, другая функция может быть запущена также дважды)

Вы также можете исправить код так, чтобы он использовал только один div, даже если у вас их два

 $('.intRevSections:first').slideDown('slow',function(){
   current=-1;
   addIrField();
  });
...