гуру jquery, расширение jquery не клонирует элементы dom - PullRequest
1 голос
/ 09 марта 2012

Вот это jsfiddel :

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 изменился. Есть новые идеи.

1 Ответ

4 голосов
/ 09 марта 2012

extend клонирует только нативные объекты JS, но не элементы DOM.Здесь клонированный объект jQuery по-прежнему указывает на исходный элемент DOM.

Вам необходимо .clone() элементов DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...