Редактировать DIVs после .append ()

Мой алгоритм:

  1. Я получаю текст DIV из PHP / SQL ($.get( "read.php"...)
  2. APPEND contenteditable div с загруженным текстом от jQuery
  3. проверить div значение, если есть ошибки в тексте, я делаю div красный (назначить класс, $(this).addClass("fill_red");)
  4. при каждом изменении текста — проверьте и назначьте / удалите класс, если это необходимо.

Проблема в следующем: с предустановленным текстом — все работает.
Но когда я добавляю div с помощью JS — функция проверки не работает.
Я искал в Интернете, может быть, on() метод помогает мне.

Но какое событие?

Это должно быть что-то вроде onload, onchange..?

(да, я мог бы сделать div генерируется php и решает проблему, но я не хочу полного обновления)

Спасибо!

часть кода:

//texts load
$(function() {
$.get( "read.php", function( data ) {
var ionka = data.split(' ');
ionka.forEach(function(item, i, arr) {
var app_text = "<div id=\"segm" + i + "\" contenteditable role=\"textbox\">" + item + "</div>";
$("#textarea").append(app_text);
});
});
//checks
var intRegex = new RegExp('^[0-9/\]{5}$');
$('#textarea div').each(function(i,elem) {
if(!intRegex.test($(this).text())) {
$(this).addClass("fill_red");
}else{
$(this).removeClass();
}
});
// edit on change. Blur because of contenteditable
var segm_array = [];
$('#textarea div').each(function(i,elem) {
$(this).blur(function() {
if (segm_array[i]!=$(this).text()){
segm_array[i] = $(this).text();
if(!intRegex.test(segm_array[i])) {
$(this).addClass("fill_red");
}else{
$(this).removeClass();
}
}
});
});

0

Решение

Вы не показываете много кода здесь, но я предполагаю, что вы пытаетесь добавить класс, прежде чем новые данные загружаются в DOM

$.get( "read.php" ).done(function( data ) {
// addClass etc
});
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector