2017-11-27 2 views
1

동적으로 테이블 행을 만들고 텍스트 상자를 추가하고 있습니다. 새 행을 추가하고 여기에 이벤트 수신기를 추가했습니다. 또한 셀을 만들고 이벤트 리스너를 추가하려고했습니다.어떻게 동적으로 추가 된 텍스트 상자에 이벤트를 바인딩 할 수 있습니까?

이 경우 자바 스크립트 기능을 사용하고 있습니다. 그러나 새로 작성된 html 요소에서 이벤트가 트리거되기 전에도 내 함수가 호출됩니다.

은 모든 경우에 함수가 바로 동적 요소가

어떤 도움이 감사를 작성라고한다.

*Doesnt Works 

Try 1* 

function addnewrow() 
{ 
    var row = table.insertRow(x.rowIndex+1); 
    row.addEventListener("click", addme, false); 
} 

function addme() 
{ 
    alert("am called "); 
} 


*try 2* 


var t12=document.createElement("input"); 
t12.id = index+"q"; 
t12.name = index+"q";      
cellnewrow2.appendChild(t12);     
//cellnewrow2.addEventListener("click",addme(),false); 
cellnewrow2.onclick =addme();  
+1

전달 함수 참조 즉'row.addEventListener ("click", addme, false)'는 함수 호출시'() '를 사용할 때 호출됩니다. – Satpal

+1

첫 번째 예제는 실제로 정확하며 콜백을 즉시 호출하지 않습니다. 당신이 기대하는대로 작동하지 않는 최소한의 완전한 예를 게시 할 수 있습니까? – 6502

+0

안녕하세요 당신이 말한 것이 정확합니다. 하지만 함수를 호출하는 동안 인수를 전달하고 싶습니다 – Abhi

답변

-1

콜백 함수로 사용하려면 함수를 구현할 수 없습니다.
성능 최적화를 고려하지 않으면 연습용으로 매우 기본적인 코드 일 수 있습니다.

<html> 
<body> 
    <button id='btn'>Click Me</button> 
    <div id='div'></div> 
</body> 
<script> 
var count = 0; 
var btn = document.getElementById('btn'); 

btn.addEventListener('click', function(){ 
    var div = document.getElementById('div'); 
    div.innerHTML += '<h2>' + count + '</h2>'; 
    count++; 
}); 
</script> 
</html> 
+0

왜 투표가 내려? – moon

관련 문제