Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.04.2016, 19:02
Интересующийся
Отправить личное сообщение для lossy11 Посмотреть профиль Найти все сообщения от lossy11
 
Регистрация: 06.04.2016
Сообщений: 12

jquery не видит добавленные динамически элементы
вообщем проблема в том что jquery не видит подгруженные данные на сайте, не пишите мне что есть on() live() они мне не подходят. для понимания расскажу вам про сайт немного.

есть у меня сайт лотерея. на сайте есть предметы, у них есть слоты, люди могут выкупать слоты и победному месту выдается предмет. и у меня есть несколько функций:
1) первая функция каждую секунду подгружает обновленный код на сайт (ну, в вкратце если говоря, функция подгружает обновленные слоты у предметов)
2) вторая функция проверяет не заполненные ли все слоты у предмета. если заполнены запускается третья функция и разыгрывается предмет
3) уже про нее немного написал выше. функция разыгрывает предмет между людьми которые купили слоты

так, теперь о проблеме. когда 3-я функция уже определяет победителя она в слоте который был победным ставит ставит стили, но... jquery не видит элементы которые подгружала 1-я функция и стили не применяются

думал об обновлении страницы, чтобы все слоты подгрузили средствами php, но мне надо чтобы все было динамически

помогите плиз
Ответить с цитированием
  #2 (permalink)  
Старый 06.04.2016, 23:09
Интересующийся
Отправить личное сообщение для lossy11 Посмотреть профиль Найти все сообщения от lossy11
 
Регистрация: 06.04.2016
Сообщений: 12

ф к

Последний раз редактировалось lossy11, 06.04.2016 в 23:22.
Ответить с цитированием
  #3 (permalink)  
Старый 07.04.2016, 11:28
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

lossy11,
Без примеров кодов ответить невозможно
Ответить с цитированием
  #4 (permalink)  
Старый 07.04.2016, 11:35
Интересующийся
Отправить личное сообщение для lossy11 Посмотреть профиль Найти все сообщения от lossy11
 
Регистрация: 06.04.2016
Сообщений: 12

функция 3
function rendLot () {
		var interval_lot;
		var interval_lot2;
		var count2 = $(".view_right_place").children("div").length;
		var id = $(".wrapper_view").attr("id");
		var data;
		$.post({
			url: '/php_script/summarizing.php',
			data: {id:id},
			success: function (date) {
				data = date;
				if (data == "error") {
					$(location).attr('href','/');
				}
			}
		});
		$("body").animate({scrollTop: $(".view_right").offset().top}, 200);
		ion.sound({
			sounds: [
				{name: "sound"}
			],
			path: "/sound/",
			preload: true,
			multiplay: true,
			volume: 0.2,
			ended_callback: function () {
				clearinterval1(interval_lot);
				clearinterval1(interval_lot2);
				clearinterval1(checkplaces);
				$("body").animate({scrollTop: $(".view_right").offset().top}, 200);
				var img_link = $("div[place=" + data + "]").children("a").children("div").children("img").attr("src");
				var name_user = $("div[place=" + data + "]").children("a").attr("user_name");
				var link_user = $("div[place=" + data + "]").children("a").attr("href");
				$(".view_right_place").before('<div class="winnersblock"><span>честная игра</span>ПОБЕДНОЕ МЕСТО<i>' + data + '</i><div class="winnersblock_right"></div></div>');
				$(".winnersblock").before('<div class="view_right_block_img"><div class="view_right_block_img_img"><div><img src="' + img_link + '" alt="gabenlottery"></div></div><div class="view_right_block_img_winner">предмет достался участнику - <a href="' + link_user + '">' + name_user + '</a></div></div>');
				$(".view_right_panel").remove();
				$(".view_right_place div[place=" + data + "]").children("a").children("div").css({opacity: '1', top: '-1px', left: '-1px', outline: '4px dashed #ff2185', 'outline-offset':'-3px'}).attr("winners","true").children("img").css({opacity: 1});
				$(".view_right_place").children(".place2").addClass("place3").removeClass("place2");
				winner();
			}
		});
		ion.sound.play("sound");
		var col = parseInt(count2/20);
		var col2 = count2-parseInt(count2/20)*20;
		interval_lot = setInterval(function () {
			var i = 0;
			while (i < col) {
				var place = getRandom(1, 21)+(i*20);
				$("*[place=" + place + "]").children("i").show();
				remove(place);
				i++;
			}
		},100);
		if (col2 > 1) {
			var place1 = 0;
			var place2 = 0;
			interval_lot2 = setInterval(function () {
				while (place1 == place2) {
					place2 = getRandom(1, col2+1)+(parseInt(count2/20)*20)
				}
				place1 = place2;
				$("*[place=" + place2 + "]").children("i").show();
				remove(place2);
			}, 300);
		}
	}


функция 2
function busyplace () {
		var result;
		var intervalcheckplace = setInterval(function () {
			var text = $(".view_progress_left i").text();
			var id = $(".wrapper_view").attr("id");
			if(id == undefined) {
				clearinterval1(intervalcheckplace);
			}
			$.post({
				url: '/php_script/busyplace.php',
				data: {text:text,id:id},
				success: function (date) {
					if (date != "error") {
						$(".view_progress_left i").text(date);
						var all_place = $(".view_left ul li:first-child span span").text();
						var left_place = all_place - date;
						$(".view_progress_right i").text(left_place);
						var width = (date * 100) / all_place;
						$(".view_progress_in").animate({width: width + "%"},500);
						result = left_place;
					} else {
						result = "false";
					}
				}
			});
			if (result == 0) {
				rendLot();
				clearinterval1(intervalcheckplace);
			} else if (result == "false") {
				clearinterval1(intervalcheckplace);
				alert("#31 - системный сбой. При повторном вызове данной ошибки сообщите в службу поддержки. С уважение Администрация проекта.");
			}
		}, 1000);
	}


функция 1
function checkplaces () {
		var result;
		var checkplacesinterval = setInterval(function () {
			var id = $(".wrapper_view").attr("id");
			if(id == undefined) {
				clearinterval1(intervalcheckplace);
			}
			$.post({
				url: '/php_script/checkplaces.php',
				data: {id:id},
				success: function (date) {
					if (date != "error") {
						$(".view_right_place").html(date);
					} else {
						result = "false";
					}
				}
			});
			if (result == "false") {
				clearinterval1(checkplacesinterval);
				alert("#32 - системный сбой. При повторном вызове данной ошибки сообщите в службу поддержки. С уважение Администрация проекта.");
			}
		}, 1000);
	}
Ответить с цитированием
  #5 (permalink)  
Старый 07.04.2016, 11:35
Интересующийся
Отправить личное сообщение для lossy11 Посмотреть профиль Найти все сообщения от lossy11
 
Регистрация: 06.04.2016
Сообщений: 12

скинул
в 3-ей функции на 37 строчке стили применяю

Последний раз редактировалось lossy11, 07.04.2016 в 12:03.
Ответить с цитированием
  #6 (permalink)  
Старый 07.04.2016, 12:06
Интересующийся
Отправить личное сообщение для lossy11 Посмотреть профиль Найти все сообщения от lossy11
 
Регистрация: 06.04.2016
Сообщений: 12

Dilettante_Pro,
я тут понял в чем проблема. у меня 1 функция подгружает новый код и стили сбиваются. мне надо из 3-ей функции отключить интервал 1-ой функции, как это можно сделать? создавал переменную checkplacesinterval вне 1-ой функции и потом очищал интервал в 3-ей функции, не получилось так
Ответить с цитированием
  #7 (permalink)  
Старый 07.04.2016, 12:19
Интересующийся
Отправить личное сообщение для lossy11 Посмотреть профиль Найти все сообщения от lossy11
 
Регистрация: 06.04.2016
Сообщений: 12

сам написал проблему на форум, сам себе и помог
решил проблему свою
Ответить с цитированием
  #8 (permalink)  
Старый 07.04.2016, 12:30
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от lossy11 Посмотреть сообщение
Dilettante_Pro,
я тут понял в чем проблема. у меня 1 функция подгружает новый код и стили сбиваются. мне надо из 3-ей функции отключить интервал 1-ой функции, как это можно сделать? создавал переменную checkplacesinterval вне 1-ой функции и потом очищал интервал в 3-ей функции, не получилось так
Как создавал?
В глобальной области вне функций в начале, перед всеми функциями,
var checkplacesinterval;

В функции 1
checkplacesinterval = setInterval(function () {
            var id = $(".wrapper_view").attr("id");
            if(id == undefined) {
                clearinterval1(intervalcheckplace);
            }

и использовать в 3-ей
Кстати, здесь с intervalcheckplace та же история - эта переменная из второй функции
Ответить с цитированием
  #9 (permalink)  
Старый 07.04.2016, 12:56
Интересующийся
Отправить личное сообщение для lossy11 Посмотреть профиль Найти все сообщения от lossy11
 
Регистрация: 06.04.2016
Сообщений: 12

получилось все, создал в глобальной области переменную, надо было просто в 3-ей функции чуть пораньше очистить интервал
оу, а в 1-ой функции не заметил, спс
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамически загружаемая jQuery и jQuery-функции в одном файле 67bytes Общие вопросы Javascript 6 06.03.2013 09:01
Как динамически изменить размер блока с флешкой из флешки с помощью jQuery Aleksandr_SAM Flash 3 30.11.2010 22:59
Как динамически изменить размер блока с флешкой из флешки с помощью jQuery Aleksandr_SAM jQuery 0 15.09.2010 02:17
Работает ли jquery с html сформированным динамически? warobushek Общие вопросы Javascript 5 13.06.2010 08:26
Подгруженный контент не видит jQuery engager jQuery 1 30.10.2009 18:23