2016-12-24 2 views
0

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

У меня есть функция внутри этого файла, которая добавляет прослушиватель событий на кнопку.

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

Итак, мы имеем: HTML

<input type="submit" id="subBtn" value="POST ARTICLE"> 

    <script> 
     eventListeners(); 
    </script> 

JS файл

function eventListeners(){ 
document.getElementById("subBtn").addEventListener("click",newContent); } 

newContent() также внутри файла JS

Это терпит неудачу.

Я заметил, однако, что, когда я место слушателя событий на входе примерно так:

<input type="submit" onclick="newContent();" value="POST ARTICLE"> 

Он работает.

Почему? И как мне исправить себя?

Большое спасибо заранее!

+0

Где находится файл JavaScript? –

ответ

0

Попробуйте переместить вызов eventListeners() в функцию onload для тела. Если это работает, ваш скрипт запускается до того, как элемент будет загружен в документ.

Что-то вроде этого -

<body onLoad="eventListeners();"> 
0

Где вы в том числе файл JS? Если вы включите его перед самим элементом, он не сможет добавить прослушиватель событий, потому что элемент еще не загружен. Обычно лучше всего включать скрипты в самом конце тела. Также разумно заставить JS ждать, пока документ не загрузится, прежде чем добавлять в обработчики событий так:

function newContent(){ 
    // function 
} 

function eventListeners(){ 
    document.getElementById("subBtn").addEventListener("click",newContent); 
} 

// Wait until the document is ready 
document.addEventListener("DOMContentLoaded", function() { 
    eventListeners(); 
}); 
Смежные вопросы