以下代码用输入框替换锚元素并为其分配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";
}
答案 0 :(得分:2)
正如您所见http://www.w3schools.com/jsref/event_onblur.asp
object.onblur=function(){myScript};
你应该为.onblur
事件分配一个函数,你分配了函数结果。
答案 1 :(得分:1)
尝试这个
newElement.addEventListener("blur", function(){
// do stuff
texOnBlur(this);
alert("Done");
});
答案 2 :(得分:1)
您当前正在引用textOnBlur
函数的结果而不是函数本身。
你应该写:
newElement.onblur = textOnBlur;
this
应自动引用textOnBlur
函数中的输入元素。