2015-05-29 17 views
1

Проблема, с которой я сталкиваюсь, заключается в том, что при добавлении alert command код работает, но если я его удалю, он не работает. Очень странно.Код работает с предупреждением, но не без

Как я могу заставить его работать без alert command?

Код ниже работает с alert, но не без.

$(function(){ 
        $('.page-links').click(function() { 
         $('#page').load('page' + $(this).data('target') + '.html'); 
        }); 

    $('[data-target]').on('click', function() { 
     var NavigationNumber = $(this).attr('data-target'); 


      // If and if only page18 is clicked, run diagram18.js 
      if (NavigationNumber == 18) { 
       alert(NavigationNumber); 
       // Run diagram18.js 
        $.getScript("SensorTables/diagram" + NavigationNumber + ".js", function() { 
         window['diagram' + NavigationNumber](); 
        }); 
    }); 

}); 
+4

Возможный дубликат [Как вернуть ответ от асинхронного вызова?] (http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an- асинхронный вызов) – JJJ

+0

Я думаю, что вы выполняете эти сценарии без готовности документа, поэтому без предупреждения javascript еще не загружен в этой точке. Вероятно, введите код в $ (document) .ready() или document.addEventListener ('DOMContentLoaded', function() {}) – Surely

ответ

1

Похоже асинхронной операции заканчивал, пока не будет нажата кнопка ОК в окне предупреждения, но без него она работает сразу. У вас есть фрагмент асинхронного бита раньше?

+0

Я отредактировал свой пост. Код до этого есть. –

0

Проблема заключается не в окне предупреждения, но до того, как вы нажмете ok в окне предупреждения, операция асинхронного запроса завершается, если у вас нет этого окна оповещения, тогда код переходит к следующей строке перед асинхронной операцией завершает и вызывает ошибку