Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   На подгружаемый контент не реагируют скрипты (https://javascript.ru/forum/dom-window/43807-na-podgruzhaemyjj-kontent-ne-reagiruyut-skripty.html)

bart_simpson_x 21.12.2013 19:26

На подгружаемый контент не реагируют скрипты
 
function getAdmList(seriesV,prodV,pageVage)
		{
		$.get('admin.php', {series:seriesV,product:prodV,page:pageVage},function(data) {
			document.getElementById ('mainframe').innerHTML = data;
		} );
		}

  $(function() {
	$( "#products_list" ).sortable({
		axis: 'y',
		stop: function (event, ui) {
			var data = $(this).sortable('serialize');
			$.ajax({
				data: data,
				type: 'POST',
				url: 'admin.php'
			});
		}
	});
	$( "#products_list" ).disableSelection();
  });


при вызове первой функции подгружуется

<ul id="products_list" class="ui-sortable">
	<li id="sortproduct-6">&nbsp;</li>
	<li id="sortproduct-7">&nbsp;</li>
	<li id="sortproduct-8">&nbsp;</li>
	<li id="sortproduct-9">&nbsp;</li>
	<li id="sortproduct-10">&nbsp;</li>
	<li id="sortproduct-11">&nbsp;</li>
	<li id="sortproduct-12">&nbsp;</li>
	<li id="sortproduct-13">&nbsp;</li>
</ul>


Drug&Drop не работает
Если

function getAdmList(seriesV,prodV,pageVage)
		{
		$.get('admin.php', {series:seriesV,product:prodV,page:pageVage},function(data) {
			document.getElementById ('mainframe').innerHTML = data;
			if(seriesV){draw_prod_list();}
		} );
		}
function draw_prod_list() {
	$( "#products_list" ).sortable({
		axis: 'y',
		stop: function (event, ui) {
			var data = $(this).sortable('serialize');
			$.ajax({
				data: data,
				type: 'POST',
				url: 'admin.php'
			});
		}
	});
	$( "#products_list" ).disableSelection();
}

Drug&Drop работает, но при перемещении не отправляется пост

Подскажите как заставить это работать

danik.js 21.12.2013 19:30

Цитата:

Сообщение от bart_simpson_x
при перемещении не отправляется пост

Судя по коду все должно работать. В консоли ошибки точно не сыплются? Поставь точку останова, посмотри выполняется ли функция stop

bart_simpson_x 21.12.2013 19:43

Ошибок нет в первом варианте скрипт работает на две менюшки которые загружаются со страницей, не работает только на подгружаемое меню
$(function() {
    $( "#series_list" ).sortable({
		axis: 'y',
		stop: function (event, ui) {
			var data = $(this).sortable('serialize');
			$.ajax({
				data: data,
				type: 'POST',
				url: 'admin.php'
			});
		}
	});
    $( "#series_list" ).disableSelection();
    $( "#pages_list" ).sortable({
		axis: 'x',
		stop: function (event, ui) {
			var data = $(this).sortable('serialize');
			$.ajax({
				data: data,
				type: 'POST',
				url: 'admin.php'
			});
		}
	});
	$( "#pages_list" ).disableSelection();
	$( "#products_list" ).sortable({
		axis: 'y',
		stop: function (event, ui) {
			var data = $(this).sortable('serialize');
			$.ajax({
				data: data,
				type: 'POST',
				url: 'admin.php'
			});
		}
	});
	$( "#products_list" ).disableSelection();
  });

bart_simpson_x 21.12.2013 20:56

Да действительно работает, приемник не корректный был. Но работает только в случае вызова функции из другой
function getAdmList(seriesV,prodV,pageVage)
		{
		$.get('admin.php', {series:seriesV,product:prodV,page:pageVage},function(data) {
			document.getElementById ('mainframe').innerHTML = data;
			if(seriesV){draw_prod_list();}
		} );
		}
function draw_prod_list() {
	$( "#products_list" ).sortable({
		axis: 'y',
		stop: function (event, ui) {
			var data = $(this).sortable('serialize');
			$.ajax({
				data: data,
				type: 'POST',
				url: 'admin.php'
			});
		}
	});
	$( "#products_list" ).disableSelection();
}


не работает по загрузке страницы. Такая же беда с подгужаемеми textarea. К ним не липнут wysiwyg

danik.js 21.12.2013 21:05

Цитата:

Сообщение от bart_simpson_x
не работает по загрузке страницы

Ну логично же. Чтобы заработало - нужно вызывать функцию при загрузке страницы, как ни "странно":
$(document).ready(draw_prod_list);

bart_simpson_x 21.12.2013 22:08

Логично, она вызывается, но элементов ещё нет
после
function getAdmList(seriesV,prodV,pageVage)
        {
        $.get('admin.php', {series:seriesV,product:prodV,page:pageVage},function(data) {
            document.getElementById ('mainframe').innerHTML = data;
        } );
        }

и клика getAdmList(1,2,3);
появляются элементы на которые $(document).ready(draw_prod_list);
не реагирует

danik.js 21.12.2013 22:20

Цитата:

Сообщение от bart_simpson_x
появляются элементы на которые $(document).ready(draw_prod_list);
не реагирует

Ну это понятное дело. Мы ведь понимаем что функция не может заглянуть в будущее и узнать какие элементы появятся на странице через пару минут и обработать их, верно? Но ты говорил:
Цитата:

Сообщение от bart_simpson_x
не работает по загрузке страницы

Именно для исправления этой проблемы и нужно вызывать функцию по событию document@ready.

bart_simpson_x 21.12.2013 22:40

Ок, а каким образом можно заглянуть а будущие и в загрузившемся окне инициировать какой либо wysiwyg? пробовал в загружаемом окне загружать и сам скрипт... не очень. я так понимаю что document@ready тут в любом случае не прокатит, только если в функцию которая на onclick стоит запихивать инициации wysiwyg?

danik.js 22.12.2013 00:41

Цитата:

Сообщение от bart_simpson_x
только если в функцию которая на onclick стоит запихивать инициации wysiwyg?

Разумеется.


Часовой пояс GMT +3, время: 10:41.