Подтвердить что ты не робот

Функция jQuery ready называется дважды

Это мой html

<div id="projekt" style="position: relative; width: 90%;height:400px;"/>

 $("#projekt").ready(function() {

     .. do something with the div
 });

Проблема заключается в том, что функция ready вызывается дважды. В чем может быть причина?

4b9b3361

Ответ 2

Если вы дважды включите свой файл javascript, он будет выполнен дважды. Это не ясно видно в firebug. Панель script (куда я отправилась отлаживать проблему javascript) будет отображать только один файл в раскрывающемся списке. Но если вы посмотрите в панели html или net, вы увидите, есть ли кратные числа.

У меня было что-то вроде:

<script src="/scripts/project.js" type="text/javascript"></script>
<script src="/scripts/project.js" type="text/javascript"></script>

(Это похоже на ответ @chs, но не специфичный для рельсов.)

Ответ 3

Я нашел решение этой проблемы.

Вы должны использовать этот код

$(document).bind("ready", MyDocumentReadyHandler)

вместо кода

$(document).ready(...);

Вы можете больше узнать о функции "ready", используя этот url.

Ответ 4

Я видел это, когда у меня есть предупреждение ( "..." ); где-то внутри обратного вызова .ready. Это происходит совсем недавно, как jQuery 1.5.2. Принимая оповещение, код запускается только один раз.

Ответ 5

Не нужно добавлять параметр приложения в следующий тег в config/application.rb  config.action_view.javascript_expansions [: defaults] =% w (приложение jquery)

Он дважды вызовет applcation.js, поэтому функции также выполняются дважды в вашем приложении

Ответ 6

Правильный способ вызова ready() для document:

$(document).ready(function() {
    ...
});

Ответ 7

У меня была такая же проблема. Он ушел, когда я переместил свой JS в другой файл и включил его в тег заголовка, а не под div, над которым я работал.

Ответ 8

Вы столкнетесь с той же проблемой при использовании JQM(jQueryMobile), но проблема в моем случае имела дубликаты атрибутов data-role="content". Этот атрибут запускает обработку всего внутри конкретного div или элемента с этим атрибутом. В моем случае функция .ready была дважды завернута в нее и поэтому выполнена дважды. Надежда, которая помогает кому-то.

Ответ 9

Если у вас неправильный src в iframe, например <iframe src="../" ...></iframe>, функция ready() будет выполнена дважды. Убедитесь, что у вас есть действительный URL.

Пример:.

<iframe src="../something.html" ... ></iframe>