2016-10-28 20 views
2

所以我想在我的網站上創建鏈接以鏈接到script.js文件中的數組,這是我創建的內容滑塊所包含的JavaScript的位置。製作一個HTML鏈接到JS滑塊的JavaScript數組

的想法是從點擊這個網站的鏈接:

<div id="slider"> 
 
     <h2 id="sliderHeader">Social Determinants of Health</h2> 
 
     <p>______________________</p> 
 
     <p id="sliderPara">In terms of health - good quality health care is a determinant of health, and access, affordability, and acceptability of health are all socially determined. But most social determinants of health lie outside the health care system.</p> 
 
     <a href="#"><input class="readmore_button" type="submit" value="Read more" /></a> 
 
    </div> 
 

 
    <div class="slider_menu"> 
 
     <ul> 
 
     <li><a href="#">Social Determinants of Health</a></li> 
 
     <li><span style="color:#fff;">|</span></li> 
 
     <li><a href="#">Monitoring Progress</a></li> 
 
     <li><span style="color:#fff;">|</span></li> 
 
     <li><a href="#">What Works</a></li> 
 
     <li><span style="color:#fff;">|</span></li> 
 
     <li><a href="#">Making it Happen</a></li> 
 
     </ul> 
 
    </div>

要鏈接到我的陣列,它是一個獨立的滑塊之一。 如下圖所示:

var headArray= ['Social Determinants of Health', 
 
'Monitoring Progress', 
 
'What Works', 
 
'Making it Happen'];

這甚至可能嗎?如果沒有解決方法?

p.s.這是我正在處理的網站http://hghazni.com/ihe/

乾杯!

+1

不能單純使用'onclick'的跨度,並通過相關的數組元素的指數? – TheJim01

+0

嗨吉姆,我與你在onclick解決方案,我正在玩,但不確定關於傳遞相關數組索引的評論。我要說實話,我對JavaScript並不擅長,所以我在學習很多東西,因爲我要走很長的路。 – Harry

+0

我應該爲每個滑塊創建一個新功能,只需將它們與onclick鏈接? – Harry

回答

0

我想通了。我只是爲數組變量中的每個值設置了一個函數,它重置滑塊計數和滑塊間隔時間。然後抓住相關的元素ID。

function slider_link_1() { 
 
    cnt = 0; 
 
    timer = setInterval(slider, 5000); 
 
    var slider = document.getElementById('slider'); 
 
    slider.style.backgroundImage = "url(\'" + imgadr[cnt] + "\')"; 
 
    document.getElementById('sliderHeader').innerHTML = headArray[0]; 
 
    document.getElementById('sliderPara').innerHTML = paraArray[0]; 
 
} 
 

 
function slider_link_2() { 
 
    cnt = 1; 
 
    timer = setInterval(slider, 5000); 
 
    var slider = document.getElementById('slider'); 
 
    slider.style.backgroundImage = "url(\'" + imgadr[cnt] + "\')"; 
 
    document.getElementById('sliderHeader').innerHTML = headArray[1]; 
 
    document.getElementById('sliderPara').innerHTML = paraArray[1]; 
 
} 
 

 
function slider_link_3() { 
 
    cnt = 2; 
 
    timer = setInterval(slider, 5000); 
 
    var slider = document.getElementById('slider'); 
 
    slider.style.backgroundImage = "url(\'" + imgadr[cnt] + "\')"; 
 
    document.getElementById('sliderHeader').innerHTML = headArray[2]; 
 
    document.getElementById('sliderPara').innerHTML = paraArray[2]; 
 
} 
 

 
function slider_link_4() { 
 
    cnt = 3; 
 
    timer = setInterval(slider, 5000); 
 
    var slider = document.getElementById('slider'); 
 
    slider.style.backgroundImage = "url(\'" + imgadr[cnt] + "\')"; 
 
    document.getElementById('sliderHeader').innerHTML = headArray[3]; 
 
    document.getElementById('sliderPara').innerHTML = paraArray[3]; 
 
}

然後我結束了連接他們對我的index.html像這樣

<div class="slider_menu"> 
 
    <ul> 
 
    <li><a href="#" onclick="slider_link_1()">Social Determinants of Health</a> 
 
    </li> 
 
    <li><span style="color:#fff;">|</span> 
 
    </li> 
 
    <li><a href="#" onclick="slider_link_2()">Monitoring Progress</a> 
 
    </li> 
 
    <li><span style="color:#fff;">|</span> 
 
    </li> 
 
    <li><a href="#" onclick="slider_link_3()">What Works</a> 
 
    </li> 
 
    <li><span style="color:#fff;">|</span> 
 
    </li> 
 
    <li><a href="#" onclick="slider_link_4()">Making it Happen</a> 
 
    </li> 
 
    </ul> 
 
</div>

而現在它的作品!這很難,但我學到了很多東西!感謝那些向我指出正確方向的人,讓我自己弄清楚。

現場版本在這裏:http://hghazni.com/ihe

+1

很高興你能弄明白!我總是覺得自己的解決方案更好。關於如何優化它的一些注意事項:請注意,所有四個函數都使用相同的代碼,但「cnt」的值不同(並且數組索引與「cnt」相同),您可以將「onclick」更改爲調用一個方法,傳遞一個值,如:'onclick =「slider_link(0)」'。然後在你的JavaScript中,你會有一個函數:'function slider_link(index){...}'。然後你可以使用'index'作爲數組索引的值。 – TheJim01