2011-12-27 2 views
1

У меня есть страница с некоторыми ее частями, загружаемая jQuery. Многие из этих частей есть код яваскрипта, подобный:Ошибка при связывании нескольких .ready()

console.log("script X loaded"); 
$(document).ready(function() { 
    console.log("script X executed"); 
    // ... some code ... 
}); 

Вопрос заключается в том, что все эти функции, где выполняются, пока не будут обновлены до JQuery 1.7.1

В настоящее время в Аль мере один из них функция не excuted как в других, в консоли я могу читать:

script A loaded 
script A executed 
script B executed 

И заканчивается без выполнения сценария B. Я пытался проверить его стирать весь код внутри функции в сценарий B.

У вас есть информация о том, что может случиться?

Спасибо!

+2

Невозможно ответить, не видя деталей, например, как вы загружаете детали, которые не выполнены должным образом. – ThiefMaster

+0

не получив ваш вопрос. пожалуйста, будьте ясны. –

ответ

4

Это похоже на состояние гонки, в котором вы загружаете необходимые компоненты в неподходящем порядке, в результате чего часть вашего кода никогда не становится готовой - таким образом, никогда не выполняется.

Возможно, я ошибаюсь, но, как правило, это касается меня.

Кроме того, если слушатель прикреплен к document, возможно, вы открыли документ для записи в какой-то момент и никогда не закрывали его.

+0

Это было. Мне пришлось попробовать стереть код в скрипте A. Это была странная ошибка, но это выполнение не закончилось, поэтому функция в скрипте B никогда не вызывалась. Спасибо! – francadaval

+0

Добро пожаловать. Это случилось со мной раньше. Иногда неясно, подумать в терминах runnables (threads), которые могут отставать из-за сетевых условий. –

2

Я предлагаю вам добавить

try{ ... }catch(error){console.log("error in method X " + error)} 

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

Я также предлагаю вам работать с хром, нажмите ctrl + shift + j, чтобы увидеть консоль, добавить «отладчик»; в коде как этот

try{ 

    console.log("running method X"); 
    .... 
}catch(error){ debugger; console.log("error in method X : " + error); } 

Это позволит вам отлаживать код при возникновении ошибки.

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