這裏是jsfiddel:jquery的大師,jquery的延伸不克隆DOM元素
class Overlay
constructor: ->
@header = $("<div> header</div>")
@footer = $("<div> footer</div>")
get: ->
@popup = $("<div></div>").append(@header).append(@footer)
@popup.clone(true)
overlay = new Overlay
overlay_extend = {}
$.extend(true,overlay_extend,overlay)
overlay_extend.header.append("<div>more header</div>")
overlay.header.appendTo("body")
在的jsfiddle我改變擴展DOM元素和原單DOM是changed..Any新的想法。
jQuery只克隆普通對象或數組,但不包含DOM元素(也可能不包含jQuery對象)。 [這是源代碼](https://github.com/jquery/jquery/blob/1.7.1/src/core.js#L303)。 – 2012-03-09 19:34:56
我很確定$ .extend並不意味着可以在類的實例上工作,儘管我在DOCS中找不到任何提及。文檔只是提到基本類型不被擴展。此外,使用包含對dom元素的引用的普通對象進行擴展將導致新對象包含對相同dom元素的引用,而不是對那些dom元素的克隆。這是設計。 – 2012-03-09 19:40:39
@KevinB - 你是什麼意思的設計..爲什麼它應該是這樣 – coool 2012-03-09 19:44:43