Проблема с атрибутом данных Jquery

0

Это должно сохранить позицию x/y холста, щелкнув элемент canvas как атрибуты данных, но по какой-то причине они не отображаются в HTML, когда я проверяю его с помощью Chrome.

$('#canvas').click(function(e){
    $(this).data("pos-x", e.offsetX);
    $(this).data("pos-y", e.offsetY);
});

Если я добавлю консольный журнал до этого.data, значения будут там, они не пустые, что, кажется, проблема?

Это кажется очень прямым, так что мне трудно найти проблему.

  • 1
    Установка только значения данных с использованием data api не создает атрибут data- * для элемента dom, вместо этого используйте `` .attr`.
  • 0
    Почему вы используете data-* атрибуты?
Показать ещё 5 комментариев
Теги:

1 ответ

3
Лучший ответ

jQuery читает из data-, но data('key', value) не изменяют атрибуты элемента. jQuery использует собственный внутренний хранилище данных. Если вы действительно хотите добавить/изменить data-, используйте attr():

$(this).attr("data-pos-x", e.offsetX);
$(this).attr("data-pos-y", e.offsetY);
  • 0
    Ааа, это имеет смысл! Огромное спасибо :)
  • 1
    Пожалуйста, посмотрите это тоже: stackoverflow.com/a/7262427/1547746

Ещё вопросы

Сообщество Overcoder
Наверх
Меню