我的页面上有许多DIV,默认情况下是隐藏的。可以通过链接选择作业(例如,"例如"#job8)。
这是一个例子div
<div class="job-details" id="job8" data-jobid="8">
<p>Job 8</p>
</div>
这是我的脚本。
$(document).ready(function(){
$('.job-details').hide();
});
$(window).bind('hashchange', function() {
if (location.hash.substring(0,4) == "#job"){
var jobID = location.hash.substring(0);
$('.job-details').hide();
$('[data-jobid="' + jobID + '"]').show();
}
});
您的行:
var jobID = location.hash.substring(0);
将"#"分配给jobID
。大概那不是你想要的?可能您想要:
var jobID = location.hash.substring(4);
您必须使用hashchange
吗?如果不是在下面尝试示例,这里是 fiddle
<nav>
<a href="#job1" data-rel="job1">Job 1</a>
<a href="#job2" data-rel="job2">Job 2</a>
<a href="#job3" data-rel="job3">Job 3</a>
</nav>
<div class="job-details" id="job1">
<p>Job 1</p>
</div>
<div class="job-details" id="job2">
<p>Job 2</p>
</div>
<div class="job-details" id="job3">
<p>Job 3</p>
</div>
.job-details {
position: absolute;
width: 400px;
height: 200px;
border: 1px solid #ddd;
display: none;
}
$(function() {
$('nav a').click(function() {
$('.job-details').fadeOut(400);
$('#'+$(this).data('rel')).fadeIn(400);
});
});
palpatim是对的,这将完成工作:
var jobID = location.hash.substring(4);
这是一个jsfiddle:http://jsfiddle.net/cc9dl/
jquery hashchange
您的功能在更改get/set jobid
之后正常工作。
在这里location.hash
给您#job8
,因此您可以直接将其用作id
选择器。
$(window).bind('hashchange', function() {
if (location.hash.substring(0,4) == "#job"){
var jobID = location.hash;
$('.job-details').hide();
$(jobID).show();
}
});
尝试小提琴
更新:
$(window).bind('hashchange', function() {
if (location.hash.substring(0,4) == "#job"){
var jobID = location.hash.substring(4);
$('.job-details').hide();
$('div[data-jobid="' + jobID + '"]').show();
}
});
尝试