是否有可能在点击后点击链接但不在网址上放置“#text”?

时间:2011-10-12 19:33:40

标签: jquery anchor

我有这样的事情:

<a name="position">Position</a>

<a href="#position">Go to target position</a>

通过使用jquery,是否可以通过某种方式,当点击锚点时它跟在链接之后但是不在URL地址上放置“#position”?

我在点击主播时尝试了e.preventDefault(),但是在链接后停止了!

2 个答案:

答案 0 :(得分:1)

我认为之前已经解决了这个问题:

How to remove the hash from window.location with JavaScript without page refresh?唯一的区别是你必须做window.location.href =(无论上述结果如何)。

答案 1 :(得分:1)

看看是否有效: http://jsfiddle.net/uzpcV/25/

提取“#id” 滚动到该位置 然后取消我们原来的点击功能

$(document).ready(function() {

function addClick(anchor,theUrl,i){
     anchor.click(function() {
            var whereToGo = theUrl.substr(theLocation);

            $('html, body').animate({
                scrollTop: $(eval('"' + whereToGo + '"')).offset().top
            }, 333);

            //hold it right there  
            return false;

        });
}

var allTheLinks = $("a");
var linksLength = allTheLinks.length;

//go through all the links   
for (var i = 0; i < linksLength; i++) {

    var theLink = allTheLinks.eq(i);
    var theUrl = theLink.attr("href");
    var theLocation = theUrl.indexOf("#");


    //check for #
    if (theLocation > -1) {
       addClick(theLink,theUrl,i)
    }
}
});