2015-11-18 79 views
0

我有一個帶有4個鏈接的選項卡。jquery觸發器多次點擊

我想通過jQuery點擊它。我用第一個鏈接:

$("a[data-search='a1']").delay(2000).trigger('click'); 

它的工作原理。

現在我也想對其他環節做到這一點:

$("a[data-search='a1']").delay(2000).trigger('click'); 
$("a[data-search='a2']").delay(2000).trigger('click'); 
$("a[data-search='a3']").delay(2000).trigger('click'); 
$("a[data-search='a4']").delay(2000).trigger('click'); 

但對於第一次觸發只運行一次。

我也嘗試了間隔法(請不要暗示它)。我認爲 我不能使用觸發('點擊')乘法。

有什麼問題?

現場演示:https://jsfiddle.net/1fvqvjb3/8/

+0

你想用觸發器做什麼? –

+0

請檢查演示。這是一個完整的代碼。 – partiz

+0

這個javascript在小提琴中什麼都不做。 –

回答

1

我可能是錯的什麼是你正在試圖做的,但它看起來好像要被點擊陸續各個環節。 jQuery .delay()函數是非阻塞的,所以它不會不是每次點擊之間等待2秒;相反,會有一個2秒的延遲,然後同時點擊所有4個鏈接,這似乎看起來好像只有一個鏈接被點擊。

我不確定您所期望的「間隔方法」是什麼意思,但也許解決問題的最佳方法是使用setTimeout()

(function f(i) { 
    setTimeout(function() { 
     $('a[data-search="a' + i + '"]').click(); 
     if (i < 4) f(i+1); 
    }, 2000); 
})(1); 

這是一個IIFE,我強烈建議reading up on如果你不熟悉他們的例子。

+0

非常感謝。但是看到,如果我用'$('a [data-search =「a'+ i +'」''')替換'alert(i);',點擊();'它正常運行4次, 。但用'click()'它只運行一次!即使添加警報,警報也會運行一次。我希望你不要和我在一起。那是我的問題。 – partiz