2016-12-24 150 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()調用移動到body的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(); 
});