如何克隆元素并保留事件侦听器?

时间:2012-04-02 11:45:05

标签: javascript jquery google-chrome-extension gmail clone

我正在制作Chrome扩展程序,以便为我的好友和我个人使用添加javascript加密到Gmail。除了当我尝试通过执行$('#elmId').clone(true)克隆Gmail界面中已有的按钮时,我的大部分工作都在工作,它不会克隆事件侦听器。此外,$('#elmId').data('events')没有任何结果。我知道该按钮有多个事件监听器,因为当我检查元素时,开发人员工具显示它在“事件监听器”选项卡下有点击,鼠标悬停等(参见http://i.stack.imgur.com/9KnIW.png& http://i.imgur.com/1sszQ.png)。这甚至可能吗?我做了很多搜索,没有提出任何问题。关于如何做到这一点或有甚么可能的任何想法?

1 个答案:

答案 0 :(得分:-1)

即使克隆事件监听器在技术上是可行的,但这并不意味着它有意义。监听器可能是一个知道元素的闭包,在不同元素上使用相同的闭包不会起作用...例如

x.onclick = function(){document.body.removeChild(x);}

在这种情况下,onclick处理程序会删除元素x,但如果您复制元素并且处理程序单击该副本仍会关闭原始文件。