2015-01-16 3 views
0
var nameInput = document.createElement("input"); 
nameInput.type = "text"; 
nameInput.className = "loop_input"; 
nameInput.id = "nameAddress"+validLoadedEmails; 
nameInput.value = data[0]; 
nameInput.onchange = editAddressHidden(validLoadedEmails); 

요소를 만들 때 나타나는 것처럼 보입니다. 이미 editAddressHidden 함수로 이동하고 변경 사항이 없을 때 이동하지 않습니다.Javasciprt에서 DOM의 onchange가 작동하지 않습니다.

답변

1

: 당신은 "내 editAddressHidden 기능에서 반환 무엇과 nameInputonchange 이벤트를 처리"말을 생각할 수

nameInput.onchange = editAddressHidden(validLoadedEmails);

. 그러나 editAddressHidden 함수 자체를 사용하여 onchange 이벤트를 처리하려는 경우에는이 경우에 맞지 않습니다.

nameInput.onchange = function(){ editAddressHidden(validLoadedEmails) }; 

지금 때마다 onchange 이벤트가 발생, 그것은 함수를 호출하고, 차례로,이 뜻은 editAddressHidden 함수를 호출 :

그래서 익명 함수에서 그것을 마무리.

+0

감사합니다! 입력 DOM을 만드는 것은 루프 안에 있으며, 코드 할 때 나타납니다. nameInput.onchange = function() {editAddressHidden (nameInput.id)}; 테이블에서 마지막으로 발견 된 namInput.id를 반환합니다. –

0

사용이

nameInput.onchange = function(){ editAddressHidden(validLoadedEmails) }; 

당신이 editAddressHidden 함수를 호출 입력의 변화 핸들러로 반환 값을 할당하기 때문에, 즉 당신이 원하는 것이 아니다. 현재 코드 감안할 때

+0

항상 설명하기 좋은 ** ** ** ** ** ** 작품보다는 ** 작동하는 이유. 그렇지 않으면 OP가 배울 것입니다 – freefaller