首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带事件的javascript cloneNode

带事件的javascript cloneNode
EN

Stack Overflow用户
提问于 2009-05-02 21:16:30
回答 3查看 2.5K关注 0票数 1

我正在为gmail编写一个greasemonkey脚本,其中我需要制作一个“收件箱”链接的副本。使用cloneNode可以正常工作,但我认为在运行时会附加一个onclick事件。因此,这是一个由两部分组成的问题: 1.有没有办法查看节点上附加了哪些事件? 2.有没有办法也复制这些事件?我找到的最近的东西是jQuery,但我还没有准备好去那里。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-02 21:29:42

  1. ,除非它是使用元素上的onclick属性设置的。
  2. 不可靠(您可以复制onclick属性,但这是否会继续工作取决于它是否被使用以及它做了什么)。

您最好添加自己的click处理程序,然后在原始的...或者以其他方式模拟行为。

票数 5
EN

Stack Overflow用户

发布于 2013-08-11 02:20:03

我认为我们可以用这个理论来解决这个问题:

我们在JS中有NodeList,也称为liveLists。我们可以在它们的长度发生变化时进行检查,将所需的公共事件添加到列表中的新元素中( addEvent -1)。

怎么说..。

票数 0
EN

Stack Overflow用户

发布于 2013-08-11 03:02:06

下面是使用Nodelist添加事件的示例。

代码语言:javascript
复制
<body>
        <div id="one" class="clones" style="background:red;width:100px;height:100px"></div>
    </body>

    <script>

        //Selecor based live list [Advantage]
        var nodeList = document.getElementsByClassName('clones')

        //Common Function for nodelist
        nodeList.addEvents = function(){
            nodeList.item(nodeList.length-1).addEventListener('click',function(){
                    console.log(this.id);
            });
        }
        nodeList.addEvents();

        //Making Clone
        var _clone  =  document.getElementsByTagName('div')[0].cloneNode(true);

        //Changing Id
        _clone.id="two"

        document.body.appendChild(_clone);
        nodeList.addEvents();
    </script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/815642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档