2016-03-09 4 views
-1

У меня есть функция, которая работает на теле onload="", но мне нужно загрузить ее перед другими элементами страницы, и я пытаюсь добавить функцию документа в заголовок, но это просто не работает.Документ готов к работе - Не загружать код сначала

f1menu() { 
    $('.menuH').hover(
     function() { 
      $('.menuC').stop().animate({width: '90px'},333) 
     }, 
     function() { 
      $('.menuC').stop().animate({width: '-0'}, 333) 
     } 
    ); 
} 

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

Так функция onload, которая работает только этот один ниже:

onload="$('.menuH').hover(function() {$('.menuC').stop().animate({width: '90px'}, 333)}, function() {$('.menuC').stop().animate({width: '-0'}, 333)});" 
+0

Пожалуйста отправьте свой код так, чтобы он правильно отформатирован/отступом для удобства чтения и легче устранить. Ред. – Sparky

+0

Стоит отметить, что $ (document) .ready – DelightedD0D

+0

, так как я могу загрузить его раньше всего? Я думал, что цель документа готова vs window.load – brigitte18

ответ

3

Обратите внимание, что следующий ответ был предоставлен до ОП изменил вопрос.

Вы должны написать:

function f1menu(){} 

нет,

f1menu(){} 

Кроме того, вы можете оптимизировать свой код document.ready, просто передавая функцию, которую вызывается, когда документ будет готов , непосредственно на jQuery:

$(function() { 
    $('.menuH').hover(
     function() { 
      $('.menuC').stop().animate({width: '90px'}, 333); 
     }, 
     function() { 
      $('.menuC').stop().animate({width: '-0'}, 333); 
     } 
    ); 
}); 

ОБНОВЛЕНИЕ:

После OP пересмотрела вопрос, решение (не рекомендуемый подход, кстати) будет просто вставить скрипт в тело страницы, но после каких-либо элементов, что функциональные ссылки, такие как:

<body> 

    <!-- elements that the code references must come before the code --> 
    <script> 
     // .menuH and .menuC elements must have already been loaded into DOM 
     $('.menuH').hover(
      function() { 
       $('.menuC').stop().animate({width: '90px'},333) 
      }, 
      function() { 
       $('.menuC').stop().animate({width: '-0'}, 333) 
      } 
     ); 
    </script> 

    <!-- Rest of HTML --> 
</body> 
+0

Все еще не работает – brigitte18

+0

Объяснение «не работает». Вы получаете сообщение об ошибке? Вы добавили console.log в f1menu, чтобы узнать, вызвана ли она? –

+0

Не работает, как в нем, все еще загружается после того, как страница завершена событием onload, а не готова к документу. – brigitte18

-1

Он не знает f1menu - это функция, так как вы не объявили ее как одну. Попробуйте это:

function f1menu(){ //logic
}

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

  • Нет связанных вопросов^_^