2011-12-24 70 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 2011-12-24 17:21:24

+0

似乎沒有工作。同樣如你所見,我在添加事件監聽器之前生成了div,所以問題不在於我添加了一個事件監聽器給一個還不存在的事物,而是我生成的div似乎並不想要服從事件監聽者 – ameltz 2011-12-24 20:04:48

+0

事實證明,我沒有給你們足夠的信息,我還加了一個raphael對象,並且divs在它後面,所以他們不能被點擊。 – ameltz 2011-12-24 22:14:25

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 2011-12-24 19:58:21

+0

事實證明,我沒有給你們足夠的信息,我還添加了一個raphael對象,並且divs在它後面,所以它們不能被點擊。 – ameltz 2011-12-24 22:14:14

相關問題