2016-08-07 2 views
0

新しく作成された要素にイベントを追加できません。 onloadに次のコードが実行されます。 新しい要素が作成された回数について、ページリフレッシュの警告「blah」を表示します。これらの要素はロード後にクリック可能ではありません。 アイデア新しく作成された要素でイベントをリッスンできません

for (var S = 0; S < arrInbound[i][3].length; S++){  
    var namesDiv = document.createElement('div'); 
    namesDiv.id = S; 
    namesDiv.draggable = 'true'; 
    namesDiv.contenteditable = 'true'; 
    namesDiv.className = "crewNames"; 
    //namesDiv.ondragstart = 'dragStart(event)'; 
    //namesDiv.onblur = 'updateArr(this)'; 
    namesDiv.onclick = alert("blah"); 
    namesDiv.innerHTML = arrInbound[i][3][S]; 
    tagElRight.appendChild(namesDiv)   
} 

答えて

2

これはこれは、関数呼び出し、namesDiv.onclickある機能割り当て

namesDiv.onclick = function() { alert('a'); } // CORRECT 

あるundefined

namesDiv.onclick = alert('a'); // WRONG 

Morのある警告は、fn結果ですアラート実行結果にonclickを設定するため、電子簡略化した例

var myBar = alert('apple'); //calls alert instantly 
 

 
    var myFoo = function() { 
 
     alert('banana'); 
 
    } 
 

 
    console.log('myBar', myBar); //logs undefined 
 
    console.log('myFoo', myFoo); //logs fn

+0

これはうまくいきました。どのようにjsファイルのどこか他の場所で関数を呼び出すのに使われますか? – Ethannn

+0

@Ethannn申し訳ありませんが、他の問題があれば、新しい投稿を開くことができます。とにかく、あなたは 'window'オブジェクトに任意の関数を付けることができます。 –

1

あなたのonclickのは、関数ではありません。次へお試しください:

namesDiv.onclick = function() {alert("blah")}; 
関連する問題