Задать вопрос
@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 Оценить Комментировать
Решения вопроса 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();
Должно сработать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 дек. 2024, в 22:02
30000 руб./за проект
23 дек. 2024, в 22:01
350000 руб./за проект
23 дек. 2024, в 21:32
20000 руб./за проект