2016-03-15 50 views
2

小提琴:https://jsfiddle.net/c0stmbqg/2/如何通過幻燈片與延遲模擬點擊事件循環

JQuery的:

$(".slidelink").click(function() { 
    var vSLinkID = $(this).attr("id"); 
    $(".slidelinkimg").css("display", "none"); 
    $(".slidecontent").css("display", "none"); 
    console.log(vSLinkID); 
    $("#slide"+vSLinkID.slice(-2)).fadeIn("slow"); 
    $("#slidelinkimg"+vSLinkID.slice(-2)).fadeIn("slow"); 
}); 

以上jQuery的觸發每次點擊一個slidelink一個DIV時顯示相應的DIV和圖像。

怎樣纔可以有一個函數,它不點擊功能,但它從1幻燈片n個幻燈片循環並回到第一個幻燈片等等有延遲,直到我在幻燈片上單擊。當我點擊幻燈片時,它應該顯示幻燈片,然後繼續下一張幻燈片的循環。

+4

_I固定在本地,它是爲我工作真棒!_怎麼是你撥弄有用的,如果它不工作? :) – smnbbrv

+1

你能創建一個工作小提琴嗎?至少在這裏添加所有代碼..很難沒有看到代碼回答.. –

+0

Ooooops遺憾。我修好了它。愚蠢的錯誤。小提琴是現在工作:) – Si8

回答

0

首先你會想要去可以單擊幻燈片的參考。我建議爲每個可點擊的幻燈片添加一個類,如「幻燈片」。 然後querySelect他們都返回數組

var slides = document.querySelectorAll(".slide"), 
// create a counter variable 
counter = 0; 

接下來,您將要創建的間隔或setTimeout函數 喜歡這個

var interval = setInterval(function(){ 
    // code executes here 
    // check if counter is larger than the array of slides 
    // and reset it 
    if(counter === slides.length){ 
     counter = 0; 
    } 
    // emulate click event on slide 
    slides[counter].click(); 
    counter++;// increase counter so it can click another slide 
}, 1000);// 1000 being 1 second delay or interval 

禁用區間(徹底清除它)使用

clearInterval(interval);// takes an interval created as a parameter 
+0

我想要保持'click'事件原樣。 – Si8

+0

點擊事件在你的jQuery點擊功能中的代碼?編輯 - 運行在你的提琴的代碼,我所提供u和換出「.slides」與「.slidelink」 – Prince

+0

沒有,代碼執行只是處理一下每張幻燈片和u想調用任何自定義代碼,離開烏爾點擊監聽器在JQuery中。 字的建議 的'//模擬就好像用戶點擊和元素 幻燈片[計數器]。點擊();' 是從 完全不同的'//添加事件偵聽器點擊,從jQuery的 $(」 slidelink。 「).click()' 離開它,因爲它會正常工作 – Prince