2015-11-09 7 views
0

Я относительно новичок в jQuery, поэтому просто пытаюсь выполнить некоторые основные команды. Однако я ничего не пытаюсь работать. Например, я пытаюсь скрыть элемент. У меня есть папка (JS), содержащий main.js файла JavaScript, поэтому я уверен, что моя структура файла правильноФункции Javascript не работают

<head> 
    <script src="js/main.js"></script>   
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  
</head> 
<body> 
     <div id="audio-buttons"> 
      <button id="prev"></button> 
      <button id="play"></button> 
      <button id="pause"></button> 
      <button id="stop"></button> 
      <button id="next"></button> 
     </div> 

</body> 

В моем main.js файл У меня есть следующие

var audio; 

$('#pause').hide(); 
+0

добавьте часть html к вопросу о том, где вы включаете файл javascript и функцию, которую вы ожидаете выполнить. – Vivek

+0

Дайте более подробную информацию ... – Turcia

+0

Из того, что я вижу, вы html-файл только, который определенно не является полным. Пожалуйста, напишите полный код – sinanspd

ответ

0

Загрузите JQuery перед использованием:

<head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <script src="js/main.js"></script>   
</head> 

Функция должна вызываться после загрузки документа:

var audio; 
$(document).ready(function() { 
    $('#pause').hide(); 
} 
+1

вы также должны загрузить jquery перед запуском любого кода jquery. – Brino

+0

Почему это downvoted? – victor

+0

Интересно, почему тоже – Vivek

0

Подкатегории ваших <script> тегов. main.js должен быть загружен после загрузкиjQuery, иначе он не будет работать.

+1

, вы также должны дождаться загрузки документа перед вызовом функции. – Brino

+0

Да, я уже собирался добавить это и увидел тонну людей с более полными ответами. – Paul

+0

Спасибо за помощь джентльменам. проблема решена и помогла мне разобраться – mccavandish

1

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

<head> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script> 
 
    $().ready(function() { 
 
     $('#pause').hide(); 
 
    }); 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <div id="audio-buttons"> 
 
    <button id="prev">Prev</button> 
 
    <button id="play">Play</button> 
 
    <button id="pause">Pause</button> 
 
    <button id="stop">Stop</button> 
 
    <button id="next">Next</button> 
 
    </div> 
 
</body>

3

изменения от этого:

<head> 
    <script src="js/main.js"></script>   
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  
</head> 
<body> 
     <div id="audio-buttons"> 
      <button id="prev"></button> 
      <button id="play"></button> 
      <button id="pause"></button> 
      <button id="stop"></button> 
      <button id="next"></button> 
     </div> 

</body> 

к этому:

<head>  
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     <script src="js/main.js"></script> 
</head> 
<body> 
     <div id="audio-buttons"> 
      <button id="prev"></button> 
      <button id="play"></button> 
      <button id="pause"></button> 
      <button id="stop"></button> 
      <button id="next"></button> 
     </div> 

</body> 

и использовать внутри main.js:

var audio; 
$(document).ready(function() { 
    $('#pause').hide(); 
}); 

или

var audio; 
jQuery(document).ready(function() { 
    jQuery('#pause').hide(); 
}); 

обновленный ответ, как есть отсутствует ) в конце и узнать больше о JQuery на своем сайте:

https://learn.jquery.com/

+1

lol почему проголосовали? –

+0

lol снова? почему проголосовали? –

0

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

Чтобы исправить это, у вас есть несколько вариантов. Во-первых, вы можете обернуть все в «готовую» функцию, как предложил Арагорн в своем ответе, или вы можете отложить загрузку вашего файла (рекомендуется в этом случае).

Итак, попробуйте переместить <script src="js/main.js"></script> после </body> и снова запустите свой код.

Есть еще одна вещь: некоторые компоненты jQuery чувствительны к порядку. При этом вы всегда должны сначала загружать jQuery, а затем использовать его, а не наоборот. Это может быть причиной вашей проблемы, поскольку браузер может пытаться запустить $('#pause').hide(); до того, как $ даже определен jQuery.

+0

Ухаживать за нижним нитом? Потребовалось полтора секунда, чтобы опросить мой ответ, и это точно. – victor

+0

Я поддержал вас, ваш ответ был хорошим, и вместо того, чтобы просто предоставить исправленный код, вы также дали объяснение. Похоже, что кто-то оставил все ответы, кроме своих. – Brino

0

Вы забыли проверить, если страница уже загружена полная:

var audio; 
$(document).ready(function() { 
    $('#pause').hide(); 
}); 

Пожалуйста, обратите внимание, чтобы изменить вид загрузки:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  
<script src="js/main.js"></script> 

Рад помочь вам!

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