Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2013, 18:43   #1
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию Перезапустить или обновить событие.

Всем привет! Есть событие, которое выводит текущие атрибуты data:
Код:
$(document).on('click','.popup',function(){
	var $this = $(this),
		data = $this.data();
	console.log(data);
});
Вот элемент:
Код HTML:
<button class="popup" data-file="/func/configurator.php" data-id_catalog="7">Изменить</button>
При нажатии получается:
Код:
Object {file: "/func/configurator.php", id_catalog: 7}
Далее посредством яваскрипта добавляется еще один атрибут, и элемент выглядит следующим образом:
Код HTML:
<button class="popup" data-file="/func/configurator.php" data-id_catalog="7" data-count="3">Изменить</button>
При нажатии получается опять то же самое:
Код:
Object {file: "/func/configurator.php", id_catalog: 7}
Видимо событие как то прокэшировалось что ли, не знаю. Помогите пожалуйста решить проблему. Заранее спасибо.
Mr_freeman вне форума Ответить с цитированием
Старый 06.10.2013, 07:00   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

jQuery.data() устанавливает\читает не аттрибуты, а свойства DOM-элементов. Если быть точным, это даже не свойства.
^-.-^ My GitHub

Последний раз редактировалось Fenex; 06.10.2013 в 07:04.
Fenex вне форума Ответить с цитированием
Старый 06.10.2013, 07:10   #3
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Код:
var body = document.body;

//Вначале нет аттрибута foo:
body.getAttribute("foo"); //null
jQuery.data(body, "foo") //undefined

//Устанавливаем значение 'foo' с помощью jQuery.data()
jQuery.data(body, "foo", "bar");

//Смотрим, что получилось:
jQuery.data(body, "foo"); //bar
body.getAttribute("foo"); //null - аттрибута нет!

//Устанавливаем аттрибут с помощью нативной функции:
body.setAttribute("foo", "attr");

//Смотрим, что получилось:
jQuery.data(body, "foo"); //bar - значение НЕ изменилось
body.getAttribute("foo"); //attr - именно это значение мы выставили нативной функцией JS
^-.-^ My GitHub

Последний раз редактировалось Fenex; 06.10.2013 в 07:15.
Fenex вне форума Ответить с цитированием
Старый 14.10.2013, 14:00   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Проверьте, тот ли элемент вы изменяете. И покажите как вы устанавливаете data-аттрибут.

Я проверил ваш код - все работает, поэтому возможно элемент не тот.
MaTBeu вне форума Ответить с цитированием
Старый 14.10.2013, 21:03   #5
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

А у меня не работает...
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mfc перезапустить DSK Visual C++ 4 15.02.2012 11:20
Перезапустить форму serj-07 Помощь студентам 3 14.02.2012 17:48
Обновить тему... ...или реестр :confused: dplz Общие вопросы Delphi 2 18.12.2009 15:20
Как обновить\перерисовать рисунок на форме или компоненте? Selebro Общие вопросы C/C++ 1 21.12.2008 21:16
Как привязать событие или макрос к динамическому объекту (commandbutton) в форме? ekesar Microsoft Office Excel 7 09.12.2008 09:13