2015-11-07 5 views
0

У меня есть метод click в jquery, но мне нужно, чтобы переменные внутри него запускались один за другим. Я использовал функции обратного вызова раньше с другими методами jquery, но здесь нет методов, которые используются, это просто вызов другой функции и изменение значения переменной. Поэтому я не знаю, как их включить в последовательность. Есть ли способ сделать так, чтобы функция вызывалась только после того, как значение переменной закончено?Включение функции JQuery в обратный вызов

$('#irbis').on('click', function() { 
     globalswitchNumber = 0; 
     galleryshowUp(); 
    }); 

Так что мне нужно globalswitchNumber, чтобы по завершении изменения до 0, а затем galleryshopUp получить казнены. Потому что теперь они исполняются одновременно.

Вот функция

function galleryshowUp() { 

      $('.protectiveshield').show(function() { 
       $('.mainscreen').hide(0, function() { 
        $('.mainpanel').clearQueue().animate({ 
         width: "100px", 
         height: "100px", 
         left: "250px" 
        }, function() { 
         $('.screencontainer').animate({ 
          height: "100px", 
          width: "100px" 
         }, 0, function() { 
          $('.mainpanel').animate({ 
           width: "805px", 
           height: database[globalswitchNumber].frameheight, 
           paddingTop: "218px" 
          }, function() { 
           $('.topscreen').animate({ 
            top: "-200px" 
           }, 400); 
           $('.screencontainer').delay(0).animate({ 
            height: database[globalswitchNumber].frameheight, 
            width: "805px" 
           }, 0); 


           $('#galleryone').attr('src', database[globalswitchNumber].galleryone); 
           $('#galleryonelink').attr('href', database[globalswitchNumber].galleryonelink); 
           $('#galleryone').css("display", database[globalswitchNumber].galleryonedisplay); 

           $('#gallerytwo').attr('src', database[globalswitchNumber].gallerytwo); 
           $('#gallerytwolink').attr('href', database[globalswitchNumber].gallerytwolink); 
           $('#gallerytwo').addClass(database[globalswitchNumber].gallerytwodisplay); 

           $('#gallerythree').attr('src', database[globalswitchNumber].gallerythree); 
           $('#gallerythreelink').attr('href', database[globalswitchNumber].gallerythreelink); 
           $('#gallerythree').addClass(database[globalswitchNumber].gallerythreedisplay); 

           $('#galleryfour').attr('src', database[globalswitchNumber].galleryfour); 
           $('#galleryfourlink').attr('href', database[globalswitchNumber].galleryfourlink); 
           $('#galleryfour').addClass(database[globalswitchNumber].galleryfourdisplay); 

           $('#galleryfive').attr('src', database[globalswitchNumber].galleryfive); 
           $('#galleryfivelink').attr('href', database[globalswitchNumber].galleryfivelink); 
           $('#galleryfive').addClass(database[globalswitchNumber].galleryfivedisplay); 

           $('#gallerysix').attr('src', database[globalswitchNumber].gallerysix); 
           $('#gallerysixlink').attr('href', database[globalswitchNumber].gallerysixlink); 
           $('#gallerysix').addClass(database[globalswitchNumber].gallerysixdisplay); 

           $('#galleryseven').attr('src', database[globalswitchNumber].galleryseven); 
           $('#gallerysevenlink').attr('href', database[globalswitchNumber].gallerysevenlink); 
           $('#galleryseven').addClass(database[globalswitchNumber].gallerysevendisplay); 

           $('#galleryeight').attr('src', database[globalswitchNumber].galleryeight); 
           $('#galleryeightlink').attr('href', database[globalswitchNumber].galleryeightlink); 
           $('#galleryeight').addClass(database[globalswitchNumber].galleryeightdisplay); 

           $('#gallerynine').attr('src', database[globalswitchNumber].gallerynine); 
           $('#galleryninelink').attr('href', database[globalswitchNumber].galleryninelink); 
           $('#gallerynine').addClass(database[globalswitchNumber].galleryninedisplay); 

           $('#galleryten').attr('src', database[globalswitchNumber].galleryten); 
           $('#gallerytenlink').attr('href', database[globalswitchNumber].gallerytenlink); 
           $('#galleryten').addClass(database[globalswitchNumber].gallerytendisplay); 

           $('#galleryeleven').attr('src', database[globalswitchNumber].galleryeleven); 
           $('#galleryelevenlink').attr('href', database[globalswitchNumber].galleryelevenlink); 
           $('#galleryeleven').addClass(database[globalswitchNumber].galleryelevendisplay); 

           $('#gallerytwelve').attr('src', database[globalswitchNumber].gallerytwelve); 
           $('#gallerytwelvelink').attr('href', database[globalswitchNumber].gallerytwelvelink); 
           $('#gallerytwelve').addClass(database[globalswitchNumber].gallerytwelvedisplay); 

           $('#gallerythirteen').attr('src', database[globalswitchNumber].gallerythirteen); 
           $('#gallerythirteenlink').attr('href', database[globalswitchNumber].gallerythirteenlink); 
           $('#gallerythirteen').addClass(database[globalswitchNumber].gallerythirteendisplay); 

           $('#galleryfourteen').attr('src', database[globalswitchNumber].galleryfourteen); 
           $('#galleryfourteenlink').attr('href', database[globalswitchNumber].galleryfourteenlink); 
           $('#galleryfourteen').addClass(database[globalswitchNumber].galleryfourteendisplay); 

           $('#galleryfifteen').attr('src', database[globalswitchNumber].galleryfifteen); 
           $('#galleryfifteenlink').attr('href', database[globalswitchNumber].galleryfifteenlink); 
           $('#galleryfifteen').addClass(database[globalswitchNumber].galleryfifteendisplay); 

           $('#gallerysixteen').attr('src', database[globalswitchNumber].gallerysixteen); 
           $('#gallerysixteenlink').attr('href', database[globalswitchNumber].gallerysixteenlink); 
           $('#gallerysixteen').addClass(database[globalswitchNumber].gallerysixteendisplay); 

           $('#galleryseventeen').attr('src', database[globalswitchNumber].galleryseventeen); 
           $('#galleryseventeenlink').attr('href', database[globalswitchNumber].galleryseventeenlink); 
           $('#galleryseventeen').addClass(database[globalswitchNumber].galleryseventeendisplay); 

           $('#galleryeighteen').attr('src', database[globalswitchNumber].galleryeighteen); 
           $('#galleryeighteenlink').attr('href', database[globalswitchNumber].galleryeighteenlink); 
           $('#galleryeighteen').addClass(database[globalswitchNumber].galleryeighteendisplay); 

           $('#gallerynineteen').attr('src', database[globalswitchNumber].gallerynineteen); 
           $('#gallerynineteenlink').attr('href', database[globalswitchNumber].gallerynineteenlink); 
           $('#gallerynineteen').addClass(database[globalswitchNumber].gallerynineteendisplay); 

           $('#gallerytwenty').attr('src', database[globalswitchNumber].gallerytwenty); 
           $('#gallerytwentylink').attr('href', database[globalswitchNumber].gallerytwentylink); 
           $('#gallerytwenty').addClass(database[globalswitchNumber].gallerytwentydisplay); 

           $('#gallerytwentyone').attr('src', database[globalswitchNumber].gallerytwentyone); 
           $('#gallerytwentyonelink').attr('href', database[globalswitchNumber].gallerytwentyonelink); 
           $('#gallerytwentyone').addClass(database[globalswitchNumber].gallerytwentyonedisplay); 


           $('#videoframe').addClass(database[globalswitchNumber].videoframedisplay); 
           $('#videoframe').attr('src', database[globalswitchNumber].videoframe); 
           $('#videoframe').attr('height', database[globalswitchNumber].videoframeheight); 

           $('#captionone').html(database[globalswitchNumber].captionone); 
           $('#captiontwo').html(database[globalswitchNumber].captiontwo); 
           $('#captionthree').html(database[globalswitchNumber].captionthree); 


           setTimeout(function() { 
            $('#irbiswindow').html($("#tableToClone").clone()); 
           }, 0); 

           $('#irbiswindow').show(); 
           $('.protectiveshield').hide(); 



          }); 
         }); 
        }); 
       }); 
      }); 

     } 
+0

Как определяется 'globalswitchNumber'? и пытаетесь ли вы использовать его в 'galleryshowUp();'? – DelightedD0D

+3

Назначение переменной всегда будет завершено до вызова функции. Можете ли вы показать определение 'galleryshowUp()'? Если функция использует какие-либо операции с асинхронными/событиями, возможно, она не выполнила свои задачи до того, как произойдет второй щелчок, снова сбросив переменную на '0'. –

+0

var globalswitchNumber; является глобальной переменной, а galleryshowUp() - огромная функция с изменением образов внутри, вытащил из базы данных json. На каждом клике globalswitchNumber изменяется ключ массива, начиная с 0 и выше. Поэтому сначала мне нужно его изменить, а затем выполнить gallershowUp, но пока он делает все это одновременно. –

ответ

0

galleryshowUp() Сделать замыкание, то будет защищено переменная внутри затвора.

$('#irbis').on('click', function() { 
    globalswitchNumber = 0; 
    function() { 
     var localSwitchNumber = globalswitchNumber; 
     galleryshowUp(localSwitchNumber); 

    } 
}); 

изменение [globalswitchNumber] к [localSwitchNumber] внутри galleryshowUp(); Если your'e возникли проблемы поддержания значения из глобальной переменной может быть хранение в качестве локальной переменной внутри крышки может работать. Я не могу сказать точно, если не смогу проверить полный код.

+0

Вы уверены, что синтаксис прав, потому что теперь он дает мне неожиданность (токен в функции() {строка –

+0

Я ответил до вашего обновления .. дайте минутку. – zer00ne

Смежные вопросы