2015-11-15 3 views
1

У меня есть следующий код для создания во время выполнения одной формы с некоторыми полями ввода и кнопками (в цикле Firebase, который я отключил, поскольку с или без него у меня такая же проблема) в моем Приложение Javascript, использующее DOM.Javascript wait asynch retriving data from Firebase

Так вот мой сниппет:

var form = document.createElement("FORM"); 
 
var fieldset = document.createElement("FIELDSET"); 
 
var inputId = document.createElement("INPUT"); 
 
inputId.value = "ID"; 
 
fieldset.appendChild(inputId); 
 
var inputVillage = document.createElement("INPUT"); 
 
inputVillage.value = "Villaggio"; 
 
fieldset.appendChild(inputVillage); 
 
var inputImage = document.createElement("INPUT"); 
 
inputImage.value = "Immagine"; 
 
fieldset.appendChild(inputImage); 
 
var buttonMod = document.createElement("INPUT"); 
 
buttonMod.setAttribute("type", "button"); 
 
buttonMod.value = "Modifica"; 
 
    // HERE my problem 
 
buttonMod.addEventListener("click",tryfunc("Mark")); 
 
    // or (same result) 
 
// buttonMod.onclick(tryfunc); 
 
fieldset.appendChild(buttonMod); 
 
form.appendChild(fieldset); 
 
document.body.appendChild(form);

function tryfunc(name) { 
 
\t [...] 
 
\t document.write("Hello " + name); 
 
\t // I also tried with this instruction found here on stackoverflow 
 
\t // (but this generate other problems) 
 
\t //name.stopPropagation(); 
 
}

мой tryfunc ("ххх") является autofired при запуске моего приложения, как можно предотвратить ?

ответ

1

Вы немедленно вызываете свою функцию: tryfunc("Mark"). Примечание, вызов функции () parentesis. Вместо этого вам нужно иметь анонимную функцию и позвонить изнутри:

buttonMod.addEventListener("click", function() { 
    tryfunc("Mark"); 
}); 
+0

Я новый остроумие DOM извините, если мой вопрос не так глубок, спасибо вам! –