2017-11-27 8 views
1

私はテーブル行を動的に作成し、テキストボックスを追加しています。 新しい行を追加し、それにイベントリスナーを追加しました。 また、セルを作成してイベントリスナーを追加しようとしました。イベントをダイナミックに追加されたテキストボックスにバインドするにはどうすればよいですか?

午前これは、Javaスクリプト関数を使用しています。しかし、私の関数は、 イベントが新しく作成された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(" add "、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

関連する問題