2016-05-24 2 views
0

i erstellen wollen einige div mit einer Onclick-Ereignis eine Funktion mit einem ParameterJavascript ein Element mit oncklick Ereignis Erstellen einer Funktion mit einem Parameter auszuführen

img.onclick=function(){getData(id);}; 

aber alle bestehenden Elemente laufen Onclick Ereignisse den letzten Wert haben der ID-Variable

meine Funktion ist

function getData(thisfolder){ 
    var request = new XMLHttpRequest(); 
    var response=""; 
    request.open("POST", "getdata.php",false); 
    request.setRequestHeader("Content-type", "application/x-www-form- urlencoded"); 
    request.send("parentid="+thisfolder); 
    response=request.responseText; 
    var contentform=document.getElementById('show-files'); 
    contentform.innerHTML=""; 

    var jsonResponse = JSON.parse(response); 

    for (i=0;i<jsonResponse['posts'].length;i++){ 
    var element=document.createElement('div'); 
    var img=document.createElement('div'); 
     img.style.cssText='background-image: url(./icons/folder.png);'; 
     img.className="fileicon"; 
     var id=jsonResponse['posts'][i]['id']; 

     img.onclick=function(){getData(id);}; 



    element.style.cssText=""; 
    element.className="folder"; 
    element.appendChild(img); 
    contentform.appendChild(element); 

} 
} 

Antwort

0

Sie Gebrauch von let

machen

Versuchen Sie, diese

function getData(thisfolder){ 
var request = new XMLHttpRequest(); 
var response=""; 
request.open("POST", "getdata.php",false); 
request.setRequestHeader("Content-type", "application/x-www-form- urlencoded"); 
request.send("parentid="+thisfolder); 
response=request.responseText; 
var contentform=document.getElementById('show-files'); 
contentform.innerHTML=""; 

var jsonResponse = JSON.parse(response); 

for (i=0;i<jsonResponse['posts'].length;i++){ 
    var element=document.createElement('div'); 
    var img=document.createElement('div'); 
    img.style.cssText='background-image: url(./icons/folder.png);'; 
    img.className="fileicon"; 
    let id = jsonResponse['posts'][i]['id']; 
    img.onclick=function(){getData(id); 
}; 
element.style.cssText=""; 
element.className="folder"; 
element.appendChild(img); 
contentform.appendChild(element); 

} 
} 
+1

Aber beachten Sie die [Browser-Unterstützung] (http://caniuse.com/#feat=let) - Internet Explorer ≤10 und Safari unterstützen keine 'let' noch. –

+0

danke es funktioniert gut, aber ist es in Ordnung, dieses Schlüsselwort zu verwenden? weil ich netbeans ide benutze und es sagte, dass diese Zeile nicht korrekt ist, wenn der Browser damit arbeiten wird. –

Verwandte Themen