简体   繁体   English

Javascript等待从Firebase检索数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM