2016-06-15 75 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

我試過這個,但它將我帶到沒有任何幻燈片的幻燈片頁面。這只是他們上面沒有任何圖片的點。 –

相關問題