【问题标题】:Javascript wait asynch retriving data from FirebaseJavascript 等待异步从 Firebase 检索数据
【发布时间】:2016-02-16 12:28:03
【问题描述】:

我有以下代码可以在运行时使用 DOM 在我的 Javascript 应用程序中创建一个带有一些输入字段和按钮的表单(在我已经删除的 Firebase 循环中,因为无论有没有它我都有同样的问题)。

所以这里是我的 sn-p:

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();
}

我的 tryfunc("xxx") 在我的应用程序启动时自动触发,如何防止它?

【问题讨论】:

    标签: javascript dom onclick addeventlistener


    【解决方案1】:

    您正在立即调用您的函数:tryfunc("Mark")。注意,函数调用() parentesis。相反,你需要有匿名函数并从内部调用你的函数:

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

    【讨论】:

    • 我是 DOM 新手,如果我的问题不是很深,我很抱歉,谢谢伙计!
    猜你喜欢
    • 2016-02-16
    • 2018-06-17
    • 1970-01-01
    • 2017-01-11
    • 2021-04-16
    • 2018-01-17
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多