2010-02-28 4 views
1

У меня очень странная проблема. Я использую jQuery, и я использую функцию $ (function() для загрузки функций при загрузке dom. Но по неизвестной причине код в $ (function() будет выполняться во второй раз. Предварительный просмотр: http://development.devhouse.nl/news/3/het-nieuwste-nieuwsbericht вы . получите 2 подсказкам Уведомления, но есть только один написанный в $ (функция() точный код:Дом загружается два раза

<script type="text/javascript"> 
     $(function() { 
      alert('Test'); 
     }); 
</script> 

И весь источник можно найти здесь (открыть источник в вашем браузере): http://development.devhouse.nl/news/3/het-nieuwste-nieuwsbericht

Пожалуйста, помогите мне. Я безнадежно ....

Том

+0

Странно: при установке точки останова на 'alert ('Test');', первое предупреждение появляется до достижения точки останова. При продолжении появляется вторая. При установке точки останова на '$ (function() {' Firefox останавливается * до * появляется первое предупреждение. –

ответ

3

Я полагаю, что сценарий находится в вашем html body вместо головы. Переместите его на head, и он выстрелил только один раз.

Есть ли причина, по которой у вас это есть?

EDIT: Для пояснения, как отметил Marcel Корпель, скрипты могут быть вложены в body, и могут быть причины производительности, чтобы иметь их в конце. Но в этой ситуации скрипт был вложен внутри элемента в пределах body. Это работает, но может привести к неожиданному поведению, если этот элемент управляется определенным образом.

+0

спасибо, что это anwser – Timo

+1

Почему это? Не должно иметь значения, где находится функция? –

+0

@Marcel - Да, вы правы. Возможно, было что-то еще, что управляло этим элементом, например 'appendTo()', или что-то в этом роде. В любом случае, это не оптимальное место для ваших скриптов. – user113716

1
$().ready(function(){ 
    alert('Test'); 
}); 
Смежные вопросы