Взять динамический attr при клике с jquery?

В Jqury новичок (точнее "0"), понадобилось использовать событие click, но сразу попал на грабли, прошу помощи. Код :
$('img#btcolorname').click(function(){
			
			var code = $( this ).data('code'); // Этот атрибут прописан в html
			var razmer = $( this ).data('info'); // А этот создается динамически, другим скриптом
			
alert("Код" + code + "Размер" +razmer);
			
			}
		);


Проблема в том, что событие правильно срабатывает 1 раз.
data-info меняется с помощью другого скрипта, и при клике по 'img#btcolorname' выводится самое первое значение атрибута.
  • Вопрос задан
  • 4923 просмотра
Пригласить эксперта
Ответы на вопрос 7
Zoxon
@Zoxon
Веб-разработчик
demimurych
@demimurych
Вы явно запутались.
$(elem).attr('data-info', val);. это установка атрибута
прочитать этот атрибут можно вот так
$(elem).attr('data-info');

Это же
$( this ).data('code');
не получение значения атрибута, а получение данного из обьекта data для этого элемента
который устанавливается следующим образом $(elem).data("code", value);
Ответ написан
Комментировать
demimurych
@demimurych
Покажите весь код.
Если судить по тому что описано в вопросе, то все должно работать как и ожидается.
Тем не менее вы говорите что у Вас не так. А значит ошибка у Вас в другом месте.
Ответ написан
Комментировать
@BadTiger Автор вопроса
Весь код
jQuery(document).ready(function($){
        
		 
		 
		 $('p.form-row.form-row-wide').click(
		function(){
			
			parametr = $( this ).data('siza');
			var poisk = ("data-par")+parametr;
			
			$('#btmodelname').css({'opacity':'1'}); // Выбор модели

			
			var $spans = "["+poisk+" !=0]["+poisk+"]";
			var $spanss = "["+poisk+" =0]["+poisk+"]";
			$("div.bt_var_prod").find($spans).css({'opacity':'1'}).attr('data-info', parametr);
			$("div.bt_var_prod").find($spanss).css({'opacity':'0.1'}).attr('data-info', '');
			
			}
		);
		
		
		// Выбор цветов
		$('img#btcolorname').click(function(){
			
			var code = $( this ).data('code'); // Этот атрибут прописан в html
			var razmer = $( this ).data('info'); // А этот создается динамически, другим скриптом
			
alert("Код" + code + "Размер" +razmer);
			
			}
		);
		 
		 
		 
});

});
Ответ написан
Комментировать
Sadist07
@Sadist07
Верстальщик, Недо дизайнер
Чтобы создать элемент тебе нужно привезать к нему значению .data('info','Значение'); а так ты не создаешь значения info а пытаешься с него что то вытащить.....
Ответ написан
Комментировать
@BadTiger Автор вопроса
demimurych, Sadist07 Мне и нужно получить значение data-info. Для этого я использую var razmer = $( this ).data('info');
Но получаю его только 1 раз. Если потом сработает $('p.form-row.form-row-wide').click
То в переменной razmer остается значение из первого клика. Как будто переменная razmer не обновляется
Ответ написан
Sadist07
@Sadist07
Верстальщик, Недо дизайнер
$("div.bt_var_prod").find($spans).css({'opacity':'1'}).attr('data-info', parametr);
скорее всего тебе тут нужно не атрибут менять а дату.
тобишь как то так я думаю
$("div.bt_var_prod").find($spans).css({'opacity':'1'}).data('info', parametr);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы