2015-09-02 2 views
0

Следующий код заменяет элемент привязки полем ввода и присваивает ему идентификатор. Я также хотел бы присвоить ему событие onblur, но не могу заставить его работать. newElement.onblur = texOnBlur(this)); Вся помощь приветствуется.Назначить событие onblur программному программному обеспечению

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

Is double ')' in 'texOnBlur (this));' ваша ошибка в копировании/вставке? – suvroc

ответ

2

Как вы можете видеть http://www.w3schools.com/jsref/event_onblur.asp

object.onblur=function(){myScript}; 

вы должны назначить функцию .onblur события, вы назначили результат функции.

+0

Я новичок в JS, поэтому, пожалуйста, извините мое невежество. Я пробовал что-то вроде этого, но без результата: 'newElement.onblur = function() {texOnBlur (this)};' – Ethannn

+0

моя ошибка, это действительно работает. Большое спасибо!!!!!! – Ethannn

1

попробовать это один

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

Согласен, addEventListener - это правильный способ назначить события – Flunch

1

Вы в настоящее время ссылки на результате textOnBlur функций вместо самой функции.

Вы должны написать:

newElement.onblur = textOnBlur; 

this следует обратиться к входному элементу внутри функции textOnBlur автоматически.

+0

Спасибо @Flunch, но он не работает – Ethannn

Смежные вопросы