Javascript.RU

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

Вставить атрибуты title и alt для картинки
День добрый коллеги!

Имею такую функцию:
if(item.type === 'image') {
				item.img = $('<img class="mfp-img" />').on('load.mfploader', function() {
					item.hasSize = true;
				}).on('error.mfploader', function() {
					item.hasSize = true;
					item.loadError = true;
					_mfpTrigger('LazyLoadError', item);
				}).attr('src', item.src);


Нужно вставить тайтл и альт для изображения. В php это сделано так: class="h1_product">{{ heading_title }} {{ model }}


Вот эти два поля {{ heading_title }} {{ model }} мне и нужно вставить в качестве тайтла и альта. Как это сделать....туплю. Спасибо!

Последний раз редактировалось Bort575, 12.09.2018 в 11:15.
Ответить с цитированием
  #2 (permalink)  
Старый 12.09.2018, 09:32
Новичок на форуме
Отправить личное сообщение для Bort575 Посмотреть профиль Найти все сообщения от Bort575
 
Регистрация: 12.09.2018
Сообщений: 5

Наведите на мысль, как {{ heading_title }} {{ model }} вогнать и в тайтл и в альт. Понятно, что через .attr('alt',... как передать эти значения не врублюсь никак...
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2018, 10:05
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,481

Bort575, Можно так:
<script>
const product={
    title:'{{ heading_title }}',
    model:'{{ model }}'
};
</script>

<script>
    $('.some-elem img').attr(product);
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 12.09.2018, 10:20
Новичок на форуме
Отправить личное сообщение для Bort575 Посмотреть профиль Найти все сообщения от Bort575
 
Регистрация: 12.09.2018
Сообщений: 5

Так, уже чувствую понятнее становится...
А как это вставить в js - файл. Там немного другая структура, оттого и весь сыр-бор.

_preloadItem: function(index) {
			index = _getLoopedId(index);

			if(mfp.items[index].preloaded) {
				return;
			}

			var item = mfp.items[index];
			if(!item.parsed) {
				item = mfp.parseEl( index );
			}

			_mfpTrigger('LazyLoad', item);

			if(item.type === 'image') {
				item.img = $('<img class="mfp-img" />').on('load.mfploader', function() {
					item.hasSize = true;
				}).on('error.mfploader', function() {
					item.hasSize = true;
					item.loadError = true;
					_mfpTrigger('LazyLoadError', item);
				}).attr('src', item.src);
			}


			item.preloaded = true;
		}

Последний раз редактировалось Bort575, 12.09.2018 в 11:14.
Ответить с цитированием
  #5 (permalink)  
Старый 12.09.2018, 10:30
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,481

Bort575, можно объявление "константы" можно оставить в шаблоне, а в скрипте уже работать с константой.
Однако лучше элементу с классом "h1_product" добавить необходимые данные в data-атрибут, а из скрипта просто прочитать их.
Ответить с цитированием
  #6 (permalink)  
Старый 12.09.2018, 10:43
Новичок на форуме
Отправить личное сообщение для Bort575 Посмотреть профиль Найти все сообщения от Bort575
 
Регистрация: 12.09.2018
Сообщений: 5

Да уж....но мой опыт пока на уровне "моя твоя не понимает"...
Профессор, я как та собака....понимать понимаю, как сделать не пойму....уже способов 15 опробовал ...мозг дымит. Всё сделал, весь код ...а тут затык и писец прям!
Ответить с цитированием
  #7 (permalink)  
Старый 12.09.2018, 10:48
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 2,481

Bort575, данные в data-атрибутах нужно экранировать.
<h1 class="h1_product" data-title="{{ heading_title }}" data-model="{{ model }}">{{ heading_title }} {{ model }}</h1>
<script>
//Это в вашем скрипте
const $header=$('h1.h1_product');
$('.some-elem img').attr({
    title:$header.data('title'),
    alt:$header.data('model')
});
</script>



--------------
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #8 (permalink)  
Старый 12.09.2018, 11:11
Новичок на форуме
Отправить личное сообщение для Bort575 Посмотреть профиль Найти все сообщения от Bort575
 
Регистрация: 12.09.2018
Сообщений: 5

Так, кажись дошло)))))
Спасибо огромное, сейчас буду лабать код))))) Хорошего дня!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как указать title при открытии окна через window.open для chrome milvic Opera, Safari и др. 4 15.01.2011 15:18
IE: dсплывающая подсказка - как "погасить" для img трибут ALT? Nominus umbra Элементы интерфейса 1 23.05.2010 04:52
Загрузить title для ссылок на странице MarikVal jQuery 0 27.07.2009 20:38
Помогите не работает скрипт MAX_NS Общие вопросы Javascript 2 24.03.2009 16:25
Вопрос к гуру. Title через js. Не выводит title из тега <TR> shkur Элементы интерфейса 24 19.06.2008 09:03