2011-12-24 23 views
2

私はjavascriptで作業しています。ほとんどの場合、イベントリスナーを追加することができましたが、divには、イベントを追加しても動的に何も生成されませんでした。コードは次のとおりです。動的に作成されたdivに追加されたイベントは発生しません

for(var i=0; i<sceneNumber; i++){ 
    var a=i; 
    if(i>2) 
     a=i%3; 
    sceneArray[i]=document.createElement('div'); 
    sceneArray[i].className="border"+a; 
    if(i%2==1) 
     sceneArray[i].style.left=0; 
    else 
     sceneArray[i].style.left=(i+1)*100; 
    sceneArray[i].style.top = i*100+100; 
    sceneArray[i].onclick= function(){console.log("fire212"); 
             if(extend1){ 
              console.log("scenelistener"); 
              currentArrow.rotate(degrees); 
             currentArrow.scale(desiredLength/arrowLength,1); 
             } 
            }; 
console.log(sceneArray[i].onclick); 
    document.getElementsByTagName('body')[0].appendChild(sceneArray[i]); 
    sceneArray[i].style.zIndex = -1; 
    console.log(sceneArray[i]); 
    } 

あなたは、私は、少なくともコンソールで「fire212」を取得する必要がありますが、でもそれは発生しません見ることができるように。何がうまくいかないでしょうか?

答えて

0

JQueryのlive()メソッドまたはon()メソッドに対して何かsimilerを実装する必要があります。以下の投稿はあなたを助けるかもしれません。

http://www.alfajango.com/blog/exploring-jquery-live-and-die/

+0

私は、助けに感謝し、それをチェックアウトします。それがうまくいくなら、私はあなたに戻ってきます(今やるべき他のものがあります)。 – ameltz

+0

は機能していないようです。また、イベントリスナーを追加する前にdivを生成していたので、問題はまだ存在しない何かにイベントリスナーを追加しているということではなく、生成されたdivが必要ないように見えますイベントリスナーに従ってください – ameltz

+0

私は皆さんに十分な情報を与えていませんでした、私はまたグラファのオブジェクトを追加して、divがそれの後ろにあったのでクリックできませんでした。 – ameltz

0
for(var i=0; i<sceneNumber; i++){ 
    var a=i; 
    if(i>2) 
     a=i%3; 
    sceneArray[i]=document.createElement('div'); 
    sceneArray[i].className="border"+a; 
    if(i%2==1) 
     sceneArray[i].style.left=0; 
    else 
     sceneArray[i].style.left=(i+1)*100; 
    sceneArray[i].style.top = i*100+100; 
    sceneArray[i].onclick=onclickevent(); 
console.log(sceneArray[i].onclick); 
    document.getElementsByTagName('body')[0].appendChild(sceneArray[i]); 
    sceneArray[i].style.zIndex = -1; 
    console.log(sceneArray[i]); 
    } 
function onclickevent(){ 
      console.log("fire212"); 
      if(extend1){ 
      console.log("scenelistener"); 
      currentArrow.rotate(degrees); 
      currentArrow.scale(desiredLength/arrowLength,1); 
      } 
     } 
+0

私はこれを試してみましたが、うまくいきませんでした:/ – ameltz

+0

私はあなたに十分な情報を与えてくれなかったし、raphaelオブジェクトも追加していました。 – ameltz

関連する問題