javascript - 不会触发已添加到动态创建的 div 的事件

标签 javascript dom-events

我在 JavaScript 工作。在大多数情况下,我已经能够很好地添加事件监听器,但是对于我动态生成的 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”,但即使这样也没有发生。可能出了什么问题?

最佳答案

您应该实现类似于 JQuery 的 live() 或 on() 方法的东西。以下帖子可能对您有所帮助。

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

关于javascript - 不会触发已添加到动态创建的 div 的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8625790/

相关文章:

javascript - 使用 1 个选项取消选择多项选择中的所有选项

javascript - 页面崩溃(可能是由于多维数组?)

javascript - JavaScript在浏览器中运行的单线程概念

javascript - 事件处理程序优先级并在某些情况下忽略其他处理程序

javascript - 如果焦点函数

javascript - 使用 javascript 切换表的主体

javascript - 将表单值发送到 chrome 扩展

javascript - 防止触发多个点击事件 : ReactJS

javascript - JavaScript 类的成员在定义后未定义

javascript - 每次用户在新浏览器窗口中访问应用程序 URL 时,如何以编程方式在 IE 中创建新的浏览器 session