2013-08-01 10 views
0

工作,我有一个链接,滚动到顶部锚与网址,而不要使用onclick事件

<a href="index.html?test=test#slides-1" id="re" class="ancLinks"></a> 
$("a.ancLinks").click(function(){ 
      elementClick = $("this").attr("href"); 
      $('html, body').animate({ 
      scrollTop: $(elementClick).offset().top 
      }, 1000); 
     }); 

,当我拿出URL(index.html的?=测试试验)它的工作原理。但我需要绝对链接的网址。什么是错的

+6

变化'$( “本”)''到$(本)' – user1477388

回答

3

我想你想:

DEMO

$("a.ancLinks").click(function (e){ 
      e.preventDefault(); 
      elementClick = this.hash; 
      $('html, body').animate({ 
      scrollTop: $(elementClick).offset().top 
      }, 1000); 
     }); 
+0

+1你更快:) –

+0

'this.hash'?不知道那个......谢谢! – ReSpawN

+0

是的,这就是我想要的:) – herrsaidy

0

您正试图获得其归结为” index.html的元素的偏移位置测试=测试#slide- 1“,这不是一个元素,而是一个URI。

的元件偏移将被取回来自真实DOM元素,可能的靶标。你可以简单地做这样的事情做到这一点:

$('a.ancLinks').click(function(event) { 
    var $this = $(this), 
     href = $this.attr('href'), 
     target = $this.data('target') || (href.indexOf('#') !== -1 ? '#'+href.split('#').pop() : false); 

    if (!target) return true; 
    var $target = $(target); 

    if ($target.length == 0) return true; 
    event.preventDefault(); 
    var offset = $target.offset(); 

    $('html, body').animate({ 
     scrollTop: offset.top || 0 
    }); 
}); 

这工作既<a href="anyurl.html#your-html-ID"><a href="anypage.html" data-target="#your-html-ID">