2016-06-09 2 views
0

Ich erstelle eine Website, ich verwende einen NodeJS-Server. In meinem öffentlichen Ordner habe ich ein Skript namens website.js und es hat den jQuery-Code, um eine console.log zu geben, wenn auf die h1 geklickt wird. (Code unten). Aber wenn ich im Browser auf die h1 klicke, funktioniert es nicht. Die Datei wird korrekt geladen, gibt keinen 404 Fehler und mein CSS Stylesheet funktioniert gut.EJS-Datei erkennt den Code der JavaScript-Datei nicht

Weitere Tests: Ich habe einen einfachen Test durchgeführt, um zu sehen, ob es den Text zurückgeben würde, wenn ich die Variable (Testcode unten) anrufe: "" (zwei Anführungszeichen), damit es sie nicht erkennt.

//Test code 
var xyz = $("#testh1").text(); 
//jQuery Code 
$("#testh1").on("click", function(){ 
    console.log("Clicked"); 
}); 
<!DOCTYPE html> 
<html> 
<head> 
    <script type="text/javascript" src="/javascripts/website.js"></script> 
    <link rel="stylesheet" type="text/css" href="/stylesheets/website.css"> 
    <script src="https://code.jquery.com/jquery-2.2.4.js" integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI=" crossorigin="anonymous"></script> 
<title>test</title> 
</head> 
<body> 

<h1 id="testh1">TEST</h1> 

</body> 
</html> 

Antwort

1
  1. Sie müssen jQuery vor Ihrem Skript laden.

    <script src="https://path-to-jquery"></script> 
    <script src="/javascripts/website.js"></script> 
    
  2. Sie müssen warten, bis das DOM bereit zu sein, bevor alle Elemente darin zugreifen. Sie können entweder tun es mit dem folgenden Code:

    $(document).ready(function() { 
        $("#testh1").on("click", function(){ 
         console.log("Clicked"); 
        }); 
    }); 
    

oder von Ihrem <script> s am unteren Rande der <body> statt in den <head> setzen.

<script src="https://path-to-jquery"></script> 
    <script src="/javascripts/website.js"></script> 
</body> 

Sie bekommen eine leere Zeichenfolge in Ihrem Testcode, weil Ihr #testh1 Element noch nicht geladen wurde.

+0

In welcher Datei soll ich jQuery laden? Die JavaScript (website.js) oder die EJS (website.ejs) Datei? – AnonUser

+0

@AnonUser Im EJS/HTML bist du schon so. Sie müssen nur die Reihenfolge ändern. Sie können kein '

Verwandte Themen