我想知道是否可以将 HTML 对象的属性值设置为包含#
字符的字符串?
我想这样做的原因是页面会有很多项目应该滚动页面到指定的元素,我想存储数据'它应该滚动到哪个项目?' 作为数据滚动属性。
所以我的 JavaScript 代码 - 将 - 看起来像这样:
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');
有效吗?