[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: jQyery и js плагины не работают с добавленными дан
batazor
У меня такой вопрос, как заставить работать сторонние плагины в блоке в котором я обновил информацию, к примеру плагин подсветки синтаксиса или плагин анимации элементов которые состоят из множества функций и меняют дерево DOM при первой загрузке страницы . Метод .on() помог мне продолжить использовать свои события на новых и обновленных элементах, а как быть со сторонними плагинами? Как их заставить еще раз сработать?
batazor
Нашел практически такой же вопрос http://toster.ru/q/63544 Возможно плагин не учитывает динамически создаваемые элементы, то можно ли заключить скрипты в какую нибудь обертку( например разместить все внутри одной функции и при обновлении данных вызывать единую функцию-обертку? такое Возможно?) к примеру скрипт для подсветки кода http://prismjs.com/examples.html Или я все таки не там ищу ошибку, проблему?
batazor
Попробовал обернуть скрипт функцией, и вызывать его при первой загрузке страницы и далее при каждом новом добавлении элемента, получилось что то вроде этого
<form>
<ul>
<li><input
id="cb0" type="checkbox">123</li>
<li><input
id="cb1" type="checkbox">123</li>
</ul>
<button>
Добавить</button>
</form>

// Допустим эта функцмя применяеться к html
function ggg () {
$('li').addClass('add');
}

// Получаем элементы которые надо поменять
process = document.querySelectorAll('.container li');

ggg(); // для тех элементов что были при загрузке страниуы

// не важно как, добавляем новый элемент

$('button').click(function(e){
$('ul').append('<li><input id="cb'+$("li").length+'" type="checkbox">123</li>');
ggg(); // и для новых и для старых
});

Но в этом случае функция будет применяться по новой ко всем значениям, как модифицировать js код, чтобы функция не применялась повторно?
linker
$('button').click(function(e){
$('ul').append('<li class="add"><input id="cb'+$("li").length+'" type="checkbox">123</li>');
});

или
$('button').click(function(e){
$('ul').append($('<li><input id="cb'+$("li").length+'" type="checkbox">123</li>').addClass('add'));
});


_____________
Gear Framework
Gear Framework на Github
batazor
Это не подойдет, функция может состоять и из сотни строк, причем как я писал выше, речь идет о чужих скриптах, добавление функционала скрипта в обработчик(или как там его) не подойдет, но применить функцию к конкретному куску html это ведь реально?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.