Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.06.2017, 15:44
Кандидат Javascript-наук
Отправить личное сообщение для arkadii_parovozov Посмотреть профиль Найти все сообщения от arkadii_parovozov
 
Регистрация: 24.11.2016
Сообщений: 101

Как изменить значение data-атрибута?
Знаю, эта тема уже обсуждалась на этом форуме, но у меня ничего не получается.

В индексной странице загружается див с атрибутом data-image-src
<div class="parallax" id="id1" data-speed="0.5" data-image-src="./images/slide-1.jpg" ></div>


При помощи js хочу заменить это изображение на другое
var new_img= document.getElementById("id1");

new_img.setAttribute("data-image-src", "./images/slide-2.jpg");


Если проверяю алертом, то получаю новое значение атрибута (slide-2.jpg) но сама картинка на странице не меняется. Почему так происходит?
Ответить с цитированием
  #2 (permalink)  
Старый 01.06.2017, 16:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

arkadii_parovozov,
... наверно потому, что плагину уже до фонаря на ваши манипуляции
Ответить с цитированием
  #3 (permalink)  
Старый 01.06.2017, 16:08
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
arkadii_parovozov,
... наверно потому, что плагину уже до фонаря на ваши манипуляции
Он говорит скрипт плагина инициализируйте после замены!
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2017, 21:22
Кандидат Javascript-наук
Отправить личное сообщение для arkadii_parovozov Посмотреть профиль Найти все сообщения от arkadii_parovozov
 
Регистрация: 24.11.2016
Сообщений: 101

Не могу понять как запустить скрипт плагина(файл во вложении).

Сам плагин подключается к странице
<script src="./js/parallax.min.js"></script>


после чего по клику идет замена фонового изображения
var new_img= document.getElementById("id1");
 
new_img.setAttribute("data-image-src", "./images/slide-2.jpg");


но ничего не получается. Пробовал даже выводить два блока с отдельными значениями data-image-src
<div class="parallax" id="id1" data-speed="0.5" data-image-src="./images/slide-1.jpg" ></div>
<div class="parallax" id="id1" data-speed="0.5" data-image-src="./images/slide-2.jpg" ></div>

и по клику менять свойства display с none на block и обратно, но тоже ничего не выходит, блоки меняются а картинка нет. Не могу понять в чем дело...
Ответить с цитированием
  #5 (permalink)  
Старый 02.06.2017, 21:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от arkadii_parovozov
Пробовал даже выводить два блока
id уникально!!!
Сообщение от arkadii_parovozov
Не могу понять в чем дело...
вам пробовали это обьяснить выше.
Ответить с цитированием
  #6 (permalink)  
Старый 02.06.2017, 22:04
Кандидат Javascript-наук
Отправить личное сообщение для arkadii_parovozov Посмотреть профиль Найти все сообщения от arkadii_parovozov
 
Регистрация: 24.11.2016
Сообщений: 101

Сообщение от рони Посмотреть сообщение
id уникально!!!
вам пробовали это обьяснить выше.
id уникально, там id2

скрипт плагина инициализируйте после замены - как инициализировать такую конструкцию
!function(t,i,e,s){
	function o(i,e){
		var h=this;"object"==typeof e&&(delete e.refresh,delete e.r .......

?

И почему элемент удаляется при display none а его изображение перекидывается на следующий элемент, если плагину уже пофиг на все манипуляции?

Последний раз редактировалось arkadii_parovozov, 02.06.2017 в 22:08.
Ответить с цитированием
  #7 (permalink)  
Старый 02.06.2017, 22:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

arkadii_parovozov,
вы бы хоть ссылку дали плагин и обьснили что хотите сделать?
Сообщение от arkadii_parovozov
как инициализировать такую конструкцию
никак, потому что по клику вы меняите html, а не данные в плагине (плагин всё что ему нужно собрал после своей загрузки) , если у него есть api, то что то можно изменить через него.
Ответить с цитированием
  #8 (permalink)  
Старый 03.06.2017, 10:38
Кандидат Javascript-наук
Отправить личное сообщение для arkadii_parovozov Посмотреть профиль Найти все сообщения от arkadii_parovozov
 
Регистрация: 24.11.2016
Сообщений: 101

Плагин брал этот: http://pixelcog.github.io/parallax.js/

Но первый блок хочу сделать в виде слайдера, как здесь: https://livedemo00.template-help.com/joomla_51191/

никак, потому что по клику вы меняите html, а не данные в плагине (плагин всё что ему нужно собрал после своей загрузки) - так если он больше не работает после загрузки, то почему при смене свойства display с none на block и обратно при помощи js
$("#id1").css("display","none");
$("#id2").css("display","block");
текст внутри блока меняется а картинка нет?
<div class="parallax" id="id1" data-speed="0.5" data-image-src="./images/slide-1.jpg" >Текст 1</div>
<div class="parallax" id="id2" data-speed="0.5" data-image-src="./images/slide-2.jpg" >Текст 2</div>
Ответить с цитированием
  #9 (permalink)  
Старый 03.06.2017, 11:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от arkadii_parovozov
var new_img= document.getElementById("id1"); new_img.setAttribute("data-image-src", "./images/slide-2.jpg");
вместо этого попробуйте
$('#id1').parallax({imageSrc: './images/slide-2.jpg'});
Ответить с цитированием
  #10 (permalink)  
Старый 03.06.2017, 11:57
Кандидат Javascript-наук
Отправить личное сообщение для arkadii_parovozov Посмотреть профиль Найти все сообщения от arkadii_parovozov
 
Регистрация: 24.11.2016
Сообщений: 101

Пробовал. При загрузке подставляется это значение, а при работе скрипта слайдера изображения не меняются
function nextSlide(slide){
	currentSlide = slide;
	
	if(currentSlide == 0 || currentSlide == 3)
	{
		currentSlide = 1;
		
		$('#id1').parallax({imageSrc: 'images/slide-1.jpg'});
		
		setTimeout(nextSlide.bind(null, 1), 4000);
	}
	else if(currentSlide == 1)
	{
		currentSlide = 2;
		
		$('#id1').parallax({imageSrc: 'images/slide-2.jpg'});
		
		setTimeout(nextSlide.bind(null, 2), 4000);
	}
	else
	{
		currentSlide = 3;

		$('#id1').parallax({imageSrc: 'images/slide-3.jpg'});

		setTimeout(nextSlide.bind(null, 3), 4000);
	}
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать значение в функцию в переменную с нужным именем? bratkovsky Общие вопросы Javascript 1 12.10.2015 08:18
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Как изменить значение JSON ? нечто Общие вопросы Javascript 1 01.12.2010 18:10
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25