2016-01-05 55 views
1

我想以类似于StackOverflow的方式设置我的锚点标记,如果我在页面A上并单击链接到页面B上的div,则div通过jQuery UI突出显示,突出显示功能。我很难弄清楚如何将锚链接传递到新页面并突出显示。这是页面场景。加载页面并使用jQuery UI高亮显示锚点div

页A

... 
<a href="/albums/1#track-1 

网页B

<!-- /albums/1#track-1 --> 

<div class="tracklist"> 
    ... 
    <div id="track-1" class="track">Track 1</div> <!-- Highlights this div --> 
    <div id="track-2" class="track">Track 2</div> 
    <div id="track-3" class="track">Track 3</div> 
    ... 
</div> 

除了设置本身我有一些性能问题。理想情况下,我认为你不得不循环遍历的每个.track,每页加载,无论这些特定的div是否在页面上。什么是最好的方法来做到这一点?

回答

1

你写错了你的html代码中的id,删除'#'符号。像下面这样的东西将会成功。

$(document).ready(function() { 
    var url = window.location.href; // Returns full current url. 
    var hash = url.substring(url.indexOf("#") + 1); 

    $('#' + hash).effect('highlight', {color: '#00f'}, 2000); 
}); 

https://jsfiddle.net/jonathanzuniga/f6qohfb8/

+0

这样做的问题是,URL需要是动态的。需要有一种方法来获取url,而不用在脚本中硬编码值。 –

+0

@CarlEdwards'window.location.href;'返回完整的当前网址。 –

+0

如果我关注你,你建议'url'的值是'window.location.href'? –