Uncaught TypeError: Cannot read property 'addEventListener' null Fehler für Bild-upload
Hallo Freunde ich bin immer diese Fehler im folgenden code:
Uncaught TypeError: Cannot read property 'addEventListener' of null
auf der Linie 11
Der Zeile 11:
fileDiv.addEventListener("click",function(e){
$(fileInput).show().focus().click().hide();
e.preventDefault();
},false)
Dies ist die input-Datei:
<input type="file" class="imageUploadBtn" id="upload-image" name="fotograflar[]" multiple="multiple">
In diesem code ein Fehler in Zeile 5:
console.log(fileInput);
fileInput.addEventListener("change",function(e){
var files = this.files
showThumbnail(files)
},false)
Was ist der Fehler? Wer kann mir diesbezüglich helfen ? Ich bin mit diesem code für Bild hochladen, aber dieser Fehler wird mir nicht erlauben!!
$(document).ready(function()
{
jQuery(function($){
var fileDiv = document.getElementById("upload");
var fileInput = document.getElementById("upload-image");
console.log(fileInput);
fileInput.addEventListener("change",function(e){
var files = this.files
showThumbnail(files)
},false)
fileDiv.addEventListener("click",function(e){
$(fileInput).show().focus().click().hide();
e.preventDefault();
},false)
fileDiv.addEventListener("dragenter",function(e){
e.stopPropagation();
e.preventDefault();
},false);
fileDiv.addEventListener("dragover",function(e){
e.stopPropagation();
e.preventDefault();
},false);
fileDiv.addEventListener("drop",function(e){
e.stopPropagation();
e.preventDefault();
var dt = e.dataTransfer;
var files = dt.files;
showThumbnail(files)
},false);
function showThumbnail(files){
for(var i=0;i<files.length;i++){
var file = files[i]
var imageType = /image.*/
if(!file.type.match(imageType)){
console.log("Not an Image");
continue;
}
var image = document.createElement("img");
//image.classList.add("")
var thumbnail = document.getElementById("thumbnail");
image.file = file;
thumbnail.appendChild(image)
var reader = new FileReader()
reader.onload = (function(aImg){
return function(e){
aImg.src = e.target.result;
};
}(image))
var ret = reader.readAsDataURL(file);
var canvas = document.createElement("canvas");
ctx = canvas.getContext("2d");
image.onload= function(){
ctx.drawImage(image,100,100)
}
}
}
});
});
Sie haben element auf der Seite mit der id hochladen ?
Es bedeutet
die id ist bei mir die Frage:
vielleicht gibt es kein element, das haben
Aber die Funktion, die Ordnung, die in
Es bedeutet
fileInput
ist null
. Warum sind Sie mit .addEventListener()
bei der Verwendung von jQuery? Mit jQuery, können Sie ein Liste Ereignis-Namen und ordnen Sie diesem handler mit nur einem Funktionsaufruf.die id ist bei mir die Frage:
id="upload-image"
vielleicht gibt es kein element, das haben
id=upload
tag.Aber die Funktion, die Ordnung, die in
localhost
InformationsquelleAutor innovation | 2014-12-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihrem code suchen und das element mit der ID 'upload':
aber die eigentliche id ist 'upload image'
<input type="file" class="imageUploadBtn" id="upload-image" name="fotograflar[]" multiple="multiple">
Ändern Ihr diese Zeile hinzu:
Ob es funktioniert auf dem localhost, dann versuchen Sie dies:
1. öffnen Sie die Seite im chrome-browser
2. hit F12
3. auf der Konsole der Entwickler-Werkzeug, Typ Dokument.getElementById("upload");
4. Was auch immer die Ausgabe, bewegen Sie einfach Ihre Maus-cursor auf das zu sehen, wo ist das element in der Benutzeroberfläche
5. Wiederholen Sie dasselbe mit nicht-localhost-Umgebung und überprüfen/debug-wo ist das problem.
Dies ist einfach ein problem und ich bin sicher, wenn Sie Geige mit dem debugger kann man es lösen sich leicht.
InformationsquelleAutor TechMaze
Sollten wir auch überprüfen, wo sind wir den Aufruf der javascript-Datei im header oder am Ende der
<body>
InformationsquelleAutor AB Abhi
getElementById
gibt null zurück, wenn Sie nicht finden können, das element, das Sie suchen. Versuchen, rufen Sie Funktionen auf null wirft einen Fehler wie den oben genannten. Es scheint, nur aus den oben, dass Sie nicht ein element mit der IDupload
.localhost
Dann die nicht-localhost-Umgebung, wo Sie zog den code nicht ein element mit der entsprechenden ID.
InformationsquelleAutor Art McBain