以编程方式将 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
事件分配一个函数,你分配了函数结果。
以下代码将锚元素替换为输入框并为其分配 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
事件分配一个函数,你分配了函数结果。