Мне интересно, можно ли задать значение атрибута объекта HTML в виде строки, содержащей символ #
?Безопасно использовать # и. символов в атрибутах html?
Причина, по которой я хочу это сделать, состоит в том, что на странице будет много элементов, которые должны прокручивать страницу до указанных элементов, и я хочу сохранить данные «какой элемент должен прокручиваться до? 'как атрибут data-scrollto.
Так что мой код JavaScript -will- выглядеть следующим образом:
function ScrollToElement(lm)
{
var theTop = lm.offset().top;
$("html,body").animate({
scrollTop: theTop/*,
scrollLeft: 1000*/
});
}
// .. and add click event to all such objects :
$('.scroller').click(function(){
var theSelector = $(this).attr('data-scrollto');
ScrollToElement($(theSelector));
});
поэтому HTML элементы будут выглядеть следующим образом:
<a class='scroller' data-scrollto='p#p-to-scroll'>Click to scroll to p</a>
это безопасно?
И как побочный вопрос, почему
$(element).data('scrollto');
не работает, но
$(element).attr('data-scrollto');
работ?
Да, это безопасно. Может быть, не очень изящный, хотя вы слишком много смешаете логику и презентацию. –
Почему 'p # p-to-scroll'? Просто '# p-to-scroll' недостаточно? –
@dystroy вы правы, я создаю портфолио для себя, и я хочу легкую навигацию. Добавление каждого щелчка() по одному показалось мне слишком большим, и я хотел бы сохранить константу javascript, а также изменять элементы html. Вы думаете о лучшем для этого пути? – jeff