Я перестраиваю с помощью javascript для настройки опцию элементов на основе ввода пользователем.восстанавливать или сохранять события выбора после .replaceWith()
На начальной странице загрузки я храню все выбора опций в «countryOptions» и на основе пользовательского ввода я MATCH все содержащиеся в нем выбора опций моих «countryOptions» с новым подмножеством и создать новый выбрать элемент как «newSelect», чтобы записать его в DOM с помощью .replaceWith(newSelect)
.
выберите элемент имеет на изменение слушателя:
$(countrySelector).on('change', function(){...});
Я не использую .html()
, потому что, как известно, проблемы в некоторых версиях IE при использовании .html()
на выберите элемент. При замене выберите элемент с .replaceWith()
, все обработчики событий удалены, как предназначено, .replaceWith()
.
Я не использую CSS для «скрытия» выберите опцию элементов, потому что это не работает в перекрестном браузере.
Теперь я ищу альтернативу, которая работает с перекрестным браузером или способ сохранить/восстановить обработчики событий. Есть идеи?
Что о делегированных обработчиков событий? – Regent
Если вы используете 'clone()' inside 'replaceWith()' и передаете ему true: '$ ('element'). Clone (true)' обработчики событий копируются. –
Что такое 'countrySelector', селекторная строка? –