Javascript 不限制id属性以使用锚点构建URL
我们不想限制id属性来构建锚,还要限制Css选择器 例如:Javascript 不限制id属性以使用锚点构建URL,javascript,jquery,url,anchor,Javascript,Jquery,Url,Anchor,我们不想限制id属性来构建锚,还要限制Css选择器 例如: http://mysiteoryoursite.com/mypage/or/yourpage#idOfPTag 也就是说,如果页面包含id等于idOfTag的元素,请转到该元素: 现在,我们想要更自由: i、 e: 这意味着:转到页面中的第二个div: http://mysiteoryoursite.com/mypage/or/yourpage#$p:eq(8) ==>转到第8页的第8段是的,我们可以: $('body').
http://mysiteoryoursite.com/mypage/or/yourpage#idOfPTag
也就是说,如果页面包含id等于idOfTag的元素,请转到该元素:
现在,我们想要更自由:
i、 e:
这意味着:转到页面中的第二个div:
http://mysiteoryoursite.com/mypage/or/yourpage#$p:eq(8)
==>转到第8页的第8段是的,我们可以:
$('body').scrollTo(window.location.hash.substr(2),{duration:'slow'});
享受演示:
以及触发标签事件,如下所示:
<a href="#$p:eq(20)">Go to p:eq(20) </a>
简易豌豆:
$('html, body').animate({
scrollTop: $(window.location.hash.substring(2)).offset().top
}, 2000);
出于安全考虑,这不是一个好主意。如果你将URL片段中的内容放入jQuery选择器,你就是在让某人完全控制你的网站。
看看window.location.hash
@rorymcrossan我不同意。有安全的方法去做。OP你试过什么?但这与@Abdennour的回答逻辑相同。。除了滚动,你还有其他逻辑吗?它们有一些相同的逻辑…但它们不一样
<a href="#$p:eq(20)">Go to p:eq(20) </a>
$(document).delegate('a[href^="#$"]','click',function(){
$('body').scrollTo($(this).attr('href').substr(2),{duration:'slow'});
});
$('html, body').animate({
scrollTop: $(window.location.hash.substring(2)).offset().top
}, 2000);