我在这里自杀了。
当我输入index.html#about(或喜欢它并打开它)时,我想得到它的index(),并将其作为“slideNumber”插入到下面的脚本中。
标记
<div id="slideshow">
<div id="frontpage">
<div id="About">
<div id="Contact">
</div>
的jQuery
$(window).bind('hashchange', function () { //detect hash change
var hash = window.location.hash.slice(1); //hash to string (= "myanchor")
$('.slideshow').cycle(slideNumber); //Slideshow-number
});
“#about”将为2,“#contact”将为3,依此类推。
我该怎么做?
答案 0 :(得分:1)
像这样简单的东西应该适用于页面加载:
if(window.location.hash != undefined) {
var slideNumber = $(window.location.hash).index() + 1;
}
如果你在页面中导航,你可以进行绑定并在里面进行index()调用,这样当哈希值发生变化时,它会更新:
$(window).bind('hashchange', function () { //detect hash change
var slideNumber = $(window.location.hash).index(); //slideNumber
$('.slideshow').cycle(slideNumber); //Slideshow-number
});
答案 1 :(得分:1)
试一试
var slideNumber = $("div#" + window.location.hash.slice(1)).prevAll().length
答案 2 :(得分:0)
slides = {frontpage: 1, about: 2, contact: 3};
$('.slideshow').cycle(slides[hash]);
为了让它变得动态,你可以使用这样的东西,我想:
$('#slideshow>div').each(function(i) {
if(this.id == hash) {
$('.slideshow').cycle(i);
}
}
或
$('.slideshow').cycle($('#slideshow>div').index(hash) + 1);