Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   проблема с плагином (https://javascript.ru/forum/jquery/39234-problema-s-plaginom.html)

japan_parts 23.06.2013 01:17

он первоначально пуст, без картинок. но он и без них должен инициализироваться. а потом я добавляю в него картинки и просто перезагружаю плагин
function Download_album (str) {

$(".clothing").html('<img src="images/loader.gif">');

  $.post("download_album.php", {str:str}, function(data) {
$(".clothing").html('');
$(".clearfix").html(data);

$('.frame').sly('reload');



});

}

japan_parts 23.06.2013 01:19

Цитата:

Сообщение от Faab (Сообщение 257894)
data это кусок html со слайдером?


Вот именно в этот кусок и вставь весь JS скрипт, который относиться к этому сладеру:

<div id="testFrame">
	<ul class="slidee">
        <li><img src="http://lorempixel.com/400/200/sports/1/" /></li> 
        <li><img src="http://lorempixel.com/400/200/sports/2/" /></li> 
        <li><img src="http://lorempixel.com/400/200/sports/3/" /></li> 
	</ul>
</div>
<script>
jQuery(function(){
 
   //вот тут вставляй весь код слайдера + его инициализация
  
});
</script>

ээээ а какая разница, что я его тут добавлю или после функции post

japan_parts 23.06.2013 01:26

заработало!! товарищи, а в чем был секрет?

Faab 23.06.2013 01:30

Ну разница есть. Ты загрузи в div кусок HTML и нажми ctrl + U. Ты не найдёшь там свой кусок, хотя ты знаешь о том что он там есть. Но работать с элементами этого куска HTML ты уже не сможешь через скрипт которым ты его загрузил этот кусок. А вот другим скриптом, внутренним, как я и указал в примере сможешь.

Хотя может люди меня попровят и я сам узнаю много что нового, но именно поэтому я иногда отказываюсь от загрузки html. Так что кто то не опровергнет мои слова, пиши весь JS внутри HTML, котоый подгружаешь. Или ставь слайдер сразу же в основной HTML и просто делай невидимым, пока он тебе не понядобится. Именно тут проблем у тебя точно не будет.

japan_parts 23.06.2013 01:36

спасибо всем

Faab 23.06.2013 01:42

но так и не скажешь ведь сразу))... Косяк может быть в том, что у тебя сейчас работают два скрипта отдельно. Ты не грузи сам HTML кусок, а просто спрячь его. Посмотри как я его спрятал в первом примере... а аяксом грузи только данные из базы данных: ссылки, сыылки на картинки, и тд... Если и даже грузишь HTML кусок, то убидесь что внутренний скрипт полностью независим от твоего главного скрипта. Именно тут идёт у тебя где то косяк.

danik.js 23.06.2013 04:24

Цитата:

Сообщение от Faab
Ну разница есть. Ты загрузи в div кусок HTML и нажми ctrl + U. Ты не найдёшь там свой кусок, хотя ты знаешь о том что он там есть. Но работать с элементами этого куска HTML ты уже не сможешь через скрипт которым ты его загрузил этот кусок.

Во-первых скрипты работают не с "кусками" HTML а с DOM-ом. После загрузки страницы строится DOM-модель. Далее эту модель можно изменять, например добавлять новые элементы через API-методы (типа appendChild) либо через присвоение innerHTML ( $(el).html() в jquery ). Причем скрипты, вставленные через innerHTML не исполняются.

Скриптам пофиг как был построен DOM. Главное - чтобы на момент вызова скрипта все нужные элементы уже присутствовали. Вот и все.

japan_parts 23.06.2013 21:34

вообщем надо было сделать так, кому будет интересен этот плагин

<script>
		jQuery(function(){
		
(function () {
		var $frame = $('#centered');
		var $wrap  = $frame.parent();

		// Call Sly on frame
		$frame.sly({
			horizontal: 1,
			itemNav: 'centered',
			smart: 1,
			activateOn: 'click',
			mouseDragging: 1,
			touchDragging: 1,
			releaseSwing: 1,
			startAt: 2,
			scrollBar: 0,
			scrollBy: 1,
			pagesBar: $wrap.find('.pages'),
			activatePageOn: 'click',
			speed: 300,
			elasticBounds: 1,
			easing: 'easeOutExpo',
			dragHandle: 1,
			dynamicHandle: 1,
			clickBar: 1,

			// Buttons
			prev: $wrap.find('.prev'),
			next: $wrap.find('.next')
		});
	}());

});

	</script>

japan_parts 23.06.2013 21:35

с созданием объекта как предложено было почему то глючно работает. тут и инициализировать не нужно, просто код вставить нужно в сам шаблон, который будет подгружаться


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