【发布时间】:2017-01-06 02:40:38
【问题描述】:
使用 html 元素的 addEventListener 与使用内联事件(如 onclick)相比有几个优势。
但是,存储包含其内联事件的元素很简单,例如,将其嵌入到父元素中并存储父元素的innerHTML。
在使用事件监听器时是否可以做类似的事情?
编辑:
我意识到我的问题没有得到充分的解释。所以这里有一些补充。
“存储”是指获取包含元素和事件监听器的信息的方法。
内联事件的模拟很简单:只需嵌入父元素并将父元素的innerHTML(字符串)保存在某处,例如在数据库中,稍后通过加载字符串并将其应用于innerHTML来重新创建元素一些元素。
但是当使用事件监听器时,如何对元素进行模拟呢?不能只使用innerHTML,因为那时事件不会被存储。
我希望这能澄清我的问题。
编辑 2
在cmets的帮助下,我做了一些不成功的尝试。
可以使用createDocumentFragment() 或element.cloneNode(true) 获取element 的存储信息。
但是,第一种方法不适用于外部存储,因为如果我理解正确,它将只包含一个指针。这是一个例子:
https://jsfiddle.net/hcpfv5Lu/
第二种方法也不起作用。我不完全确定为什么,但如果我 JSON.stringify 克隆它“消失”。这是一个例子:
【问题讨论】:
-
“商店”是什么意思?
-
@KevBot 我的意思是一种获取信息并将其放在其他地方并稍后再次加载的方法。例如,可以存储一个元素的
innerHTML(字符串),稍后将其重新应用到其他元素,以恢复前一个元素。 -
我错过了什么吗? addEventListener 是 javascript,而不是 html
-
http://stackoverflow.com/a/6348597/3877877 ...也许我误解了,但你可以这样做。
标签: javascript html event-listener