[英]Javascript wait asynch retriving data from Firebase
I have the following code to create at runtime one form with some input fields and buttons (in a Firebase loop that i have cutted away because with or without it i have the same issue) in my Javascript application using DOM. 我有以下代码在运行时使用DOM在我的Javascript应用程序中创建一种带有一些输入字段和按钮的表单(在Firebase循环中,我删除了该表单,因为不管有没有它,我都遇到同样的问题)。
So here my snippet: 所以这是我的摘录:
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) { [...] document.write("Hello " + name); // I also tried with this instruction found here on stackoverflow // (but this generate other problems) //name.stopPropagation(); }
my tryfunc("xxx") is autofired at start of my application, how can prevent it? 我的tryfunc(“ xxx”)在应用程序启动时自动启动,如何防止它发生?
You are calling your function immediately: tryfunc("Mark")
. 您正在立即调用函数: tryfunc("Mark")
。 Note, function invocation ()
parentesis. 注意,函数调用()
括号。 Instead, you need to have anonymous function and call yours from inside: 相反,您需要具有匿名函数并从内部调用您的函数:
buttonMod.addEventListener("click", function() {
tryfunc("Mark");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.