.hashchange没有跳转到锚标签?

时间:2013-11-22 00:36:26

标签: jquery plugins anchor hashtag

我正在使用Ben Alman的Hashchange插件,我的代码成功切换了指定div的类。

我无法弄清楚如何让它停止跳转到锚标签..我希望它保留在用户当前定位的任何位置。

这是我的代码......

$(window).hashchange( function(){
$(function(){
$('.eventselected').removeClass('eventselected');
$(location.hash).addClass('eventselected');

});
});

$(window).trigger( 'hashchange' );

情况是我希望在用户从外部链接进入页面时以及在父页面上单击链接时添加该类。只是不要它跳!

链接的类是.side-eventmore

我已经尝试用这个来修改我的代码......但仍然无效...

$( ".side-eventmore" ).click(function(e) {
e.preventDefault();
var hash = $(this).attr("href").replace('events.cfm', '') || 'blank';
document.location.hash = hash;  
});

$(window).hashchange( function(ev){
ev.preventDefault();
$(function(){
$('.eventselected').removeClass('eventselected');
$(location.hash).addClass('eventselected');
});

});

$(window).trigger( 'hashchange' );

1 个答案:

答案 0 :(得分:2)

好的,明白了。

我最终要做的是手动将每个受影响的div的id更改为hashtag加“-id”,但保持链接只是标签sans“-id”所以..

<div id="#hash-id"></div>
<a href="#hash">link</a>

然后在代码中我将新类仅应用于#hash-id ...就像这样......

$(window).hashchange( function(){

var selectid = location.hash;
selectid += '-id';

$(function(){
$('.eventselected').removeClass('eventselected');
$(selectid).addClass('eventselected');
});

});

$(window).trigger( 'hashchange' );