2015-11-21 4 views
0

Мой внешний файл (расслоение плотной example.js):Внешний Js файл не может запустить Jquery

alert("External js file has just been loaded !"); 

$("#start").click(function (e) { 
    alert("Starting !"); 
}); 

Мой HTML-файл имеет <script type="text/javascript" src="example.js"></script>. Когда я загружаю страницу, она оповещает "External js file has just been loaded !", что означает, что файл js успешно загружен.

Однако, когда я нажимаю кнопку «Пуск», он не предупреждает "Starting !".

Когда я вставить содержимое example.js файла в HTML файл, он может предупредить "Starting !":

<script> 
    alert("External js file has just been loaded !"); 

    $("#start").click(function (e) { 
     alert("Starting !"); 
    }); 
</script> 

Как я могу исправить такую ​​проблему с внешними JS файл?

+1

Загружаете файл example.js перед тем, как элемент #start существует на странице? Вы должны загрузить файл js в конце страницы или поместить обработчик кликов в готовый вызов документа. – j08691

+0

@ j08691 Как загрузить js-файл в конце страницы? –

+1

Переместить '' прямо перед ''. – j08691

ответ

3

Убедитесь, что вы привнесли свой jquery сценарий перед вашим example.js.

Для примера:

<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> 
<script type="text/javascript" src="example.js"></script> 

и проверить вашу консоль, если вы получаете какие-либо ошибки.

+0

Спасибо, сейчас работает –

0

Это происходит потому, что вы не записали событие click внутри функции document.ready. События должны быть записаны, когда DOM готов.

$(document).ready(function(){ 
    $("#start").click(function (e) { 
    alert("Starting !"); 
    }); 
}); 

Вы можете найти более подробную информацию здесь: https://learn.jquery.com/using-jquery-core/document-ready/

+0

Я просто попытался, но это не сработает. –

+0

Почему downvote ??? – Hiral

1

Попробуйте загрузить "example.js" в .ready() используя $.getScript()

$(function() { 
    $.getScript("example.js") 
}) 
1

Я просто попытался это и все, кажется, работает хорошо.

$(document).ready(function() { 
 

 
    $("#world-button").click(function() { 
 
    alert("Hello World"); 
 
    }); 
 

 
});
<!DOCTYPE HTML> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <title>Demo</title> 
 
</head> 
 
<body> 
 
    <button id="world-button">Hello World</button> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
 
</body> 
 
</html>

+0

Обратите внимание, что я встроил JQuery-библиотеку непосредственно перед ''. – Berendschot

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