@fatedupi

Как правильно создавать dom на jquery?

Подскажите, как правильно создавать html структуры?
Есть код типа такого:
var columns = ['a', 'b', 'c'];

var $columns = $('<div/>');
columns.forEach(function(column) {
	var $column = $('<select/>').addClass(column);
	$column.selectize(); //Вот тут проблема
	$columns.append($column);
});

$('#containter').append($columns);


Все вроде хорошо, но при таком методе многие jQuery плагины, тот-же selectize.js не отрабатывают.
Видимо им надо что-бы элемент, на который они вешаются, уже был отрендерен, но в данном случае от рендерится только после "$('#containter').append($columns);"

Как с этим быть?

Спасибо!
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
Попробуйте так:
var classes = ['a', 'b', 'c'];

var $columns = $('<div/>');
classes.forEach(function(cls) {
  var $column = $('<select/>').addClass(cls);
  $columns.append($column);
  $column.selectize();
});

$('#containter').append($columns);

Я переименовал одну переменную, для читабельности. А то у вас одни columns там.
Хотя я бы сделал как-то так:
var classes = ['a', 'b', 'c'];

var $wrapper = $('<div/>');
classes.forEach(function(cls) {
  var $column = $('<select/>').addClass(cls);
  $wrapper.append($column);
});
$('#containter').append($wrapper);
$wrapper.children().selectize();
Должно сработать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Market-place Ростов-на-Дону
от 100 000 до 200 000 ₽
20 июн. 2024, в 17:08
3000 руб./в час
21 июн. 2024, в 22:53
1000 руб./за проект
21 июн. 2024, в 22:12
5000 руб./за проект