2016-06-15 74 views
0

还有类似的其他问题,但答案总是与我没有使用的特定JQuery代码有关。相反,我使用W3Schools的幻灯片例子在这里:链接到使用Javascript/CSS/HTML的旋转木马中的特定幻灯片

http://www.w3schools.com/howto/howto_js_slideshow.asp

我有一个不同的页面上的链接,我想每个那些链接,打开一个特定的幻灯片幻灯片页面。

我想最近事情是这样的:

LINK单独的页面上:

<a href="slideshow.html#currentSlide(3)"> 
上slideshow.html幻灯片下

点链接(也想不出别的链接) :

<div style="text-align:center"> 
    <span class="dot" onclick="currentSlide(1)"></span> 
    <span class="dot" onclick="currentSlide(2)"></span> 
    <span class="dot" onclick="currentSlide(3)"></span> 
    <span class="dot" onclick="currentSlide(4)"></span> 
    <span class="dot" onclick="currentSlide(5)"></span> 
    <span class="dot" onclick="currentSlide(6)"></span> 
</div> 

和JavaScript,理应告知要加载基于散列什么幻灯片:

if (location.hash) 
{ 
    $('#' + location.hash.substring(1)).click(); 
} 

大概是一个愚蠢的想法,但我对这个东西比较陌生,没有想法。

回答

0

你已经差不多了,但你有一个问题。处理要显示哪个项目的脚本引用了一个不存在的元素。您写道:

$('#' + location.hash.substring(1)).click(); 

这是要评估对这样的事情:

$('#currentSlide(1)').click(); 

这告诉jQuery的目标与id=currentSlide(1)的元素,它不会在页面上存在。

我会建议,而不是与你要显示的图像,这样的只是索引来命名您的网址片段:

<a href="slideshow.html#0">Image 1</a> 
<a href="slideshow.html#1">Image 2</a> 
<a href="slideshow.html#2">Image 3</a> 

然后在slideshow.html页面使用此命令触发点击事件:

$(document).ready(function() { 
    if (location.hash) { 
    var hash = location.hash.slice(1); 
    $(".dot").eq(hash).click(); 
    } 
}); 

这将寻找at the index provideddot类,然后单击该元素。

+0

当我这样做,它只是显示所有幻灯片一起在页面上垂直形成一个顶部的其他的一路下跌的页面。我可能做错了! –

+0

我认为你错过了将你的代码包装在文档加载事件中。 document.addEventListener('DOMContentLoaded',function(){ // your js here },false); – Bellu

+0

我没有做任何改变显示的内容,我所做的只是改变你的JavaScript。你能澄清你现在遇到的确切问题吗?你是否遇到任何控制台错误? – dave

0

你可以做这样的事情:

if(location.hash){ 
    //assuming you have a hash like this -> slide1 
    var slide = location.hash; 
    var slideNumber = slide.replace("#slide",""); 
    currentSlide(slide); 
} 
+0

我试过这个,但它将我带到没有任何幻灯片的幻灯片页面。这只是他们上面没有任何图片的点。 –

相关问题