У меня есть страница, которая использует JQuery для некоторых AJAX-вещей и Django в качестве основного сервера приложений.Допустим, у меня есть какая-то ссылка, к которой я хочу прикрепить обработчик 'click', чтобы отобразить диалог jQuery, в котором содержимое диалога загружается через сервер AJAX.Серверу нужен какой-то идентификатор для генерации содержимого диалога.Это доступно в оригинальном шаблоне сайта и должно быть передано на сервер с помощью JS.Каков наиболее правильный (или «лучший метод») способ хранения упомянутого идентификатора на странице:
Методы
Создайте ссылку и прикрепите «щелчок»msgstr "обработчик, который делает preventDefault()
и использует ссылку в JS.Т.е.: <a id="do-dialog" href="{% url app.views.some_view param=object.id %}">Show me!</a>
и JS, который выглядит следующим образом:
$("#do-dialog").click(function (e) {
var url = $(this).attr("href");
/* do ajax with url */
e.preventDefault();
});
Кодировать идентификатор в атрибуте класса или идентификатора ссылки.Т.е.: <a class="do-dialog object-{{ object.id }}" href="#">Show me!</a>
и использовать JS для получения идентификатора из класса и использовать его.
Нарушить HTML, вставить идентификатор в пользовательский атрибут и извлечь его оттуда: <a obj-id="{{ object.id }" class="do-dialog" href="#">Show me!</a>
Плюсы и минусы
Похоже, самый "правильный" способ сделать это.Данные хранятся в известном атрибуте и могут использоваться непосредственно из JS.Однако если пользователь отключил JS, он перейдет на страницу, которая возвращает JSON или XML.( Примечание: для этого конкретного сайта вполне нормально, если не работать с JS отключено !)
Не имеет этогоdisatvantage.С выключенным JS ничего не произойдет.Однако вы должны проанализировать идентификатор из атрибута class, который выглядит немного уродливо и подвержен ошибкам.
Не является допустимым HTML.С другой стороны, у вас есть необходимые данные непосредственно доступны.