以编程方式将 onblur 事件分配给输入框

Assign onblur event to an inputbox programmatically

以下代码将锚元素替换为输入框并为其分配 ID。我还想为其分配一个 onblur 事件,但无法使其正常工作。 newElement.onblur = texOnBlur(this)); 欢迎所有帮助。

function replaceElement(e) {
    selectedElement = e.id
    var newElement = document.createElement("input");
    newElement.setAttribute("id", selectedElement);
    newElement.onblur = texOnBlur(this));

    newElement.value = document.getElementById(selectedElement).innerHTML; 
    var oldElement = document.getElementById(selectedElement);
    var parentDiv = oldElement.parentNode
    parentDiv.replaceChild(newElement, oldElement);

    document.getElementById(selectedElement).style.width = "45px"; 
    document.getElementById(selectedElement).style.height = "12px";
}

试试这个

newElement.addEventListener("blur", function(){
     // do stuff
     texOnBlur(this);
     alert("Done");
});

您当前引用的是 textOnBlur 函数的结果,而不是函数本身。

你应该写:

newElement.onblur = textOnBlur;

this 应该自动引用 textOnBlur 函数中的输入元素。

如你所见http://www.w3schools.com/jsref/event_onblur.asp

object.onblur=function(){myScript};

你应该为 .onblur 事件分配一个函数,你分配了函数结果。