клонирование компонентов ExtJS с использованием JQuery

StackOverflow https://stackoverflow.com/questions/418910

  •  03-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь клонировать компоненты формы, используя JQuery .clone () (на самом деле, я клонирую коллекцию полей, клонируя элемент контейнера). Все работало хорошо, за исключением того, что поле даты, выпадающие списки не работают, даже проверка minLength и т. Д. Также не работает.

Кстати, я просто преобразовываю старые поля формы html в поля формы ext js, используя applyTo

Это было полезно?

Решение

Проблема в том, что jQuery clone () не клонирует обработчики событий связанные с элементами DOM. Но даже если вы используете клон (правда), это копирует обработчики событий, это все еще не работает, потому что вы также нужно клонировать объект Ext на стороне JavaScript.

Вам действительно нужно использовать инструменты, предоставляемые Ext, для создания многих аналогичные элементы управления. Хорошее начало - создавать собственные компоненты Ext , что вы можете легко создать несколько раз.

Другие советы

Для начала вы можете попробовать использовать

.clone(true) 

, поэтому все обработчики событий для элемента копируются. Кроме того, я подозреваю, что Extjs делает некоторые другие вещи при создании своих элементов управления, поэтому это, вероятно, только первый шаг к тому, чтобы заставить его работать. Оглядываясь быстро на форумах extjs, я не вижу много информации о клонировании виджетов.

scroll top