2016-09-03 122 views
0

我有一個函數可以在每個鏈接上查找鏈接標記和調用點擊函數。點擊功能完成後,我想調用另一個函數(SecondFunction)。但是第二個函數在點擊函數完成之前被調用。我希望在單擊鏈接後調用第二個函數,以便在下一個單擊的頁面上調用該函數。在運行另一個函數之前完成.click()函數

setInterval(function(){ 
      $TabLinks= Get all links 

      $TabLinks.each(function(index, value){  
       $(this).click(); // Do not worry about syntax, Click on first link(tab), then after clicking on tab, 
I want SecondFunction() to be called 
       LinkClicked = 1 
       SecondFunction() // This function should be called when it is on clicked page. 
},1500) 

function SecondFunction(){ 
do bunch of other clicking. 
setInterval(function(){ 
},1000) 
} 

眼下,它進入第一個功能,去點擊的功能,但它並沒有去下一個標籤,這意味着點擊功能還沒有完成。在進入下一個選項卡之前,它會轉到SecondFunction()函數並在click()函數完成之前開始運行該函數。

+1

爲什麼不能在這個元素的click()中調用'SecondFunction()'。 – Vijai

+0

這將無法正常工作,正如我的問題所述,我希望click()帶我到下一個選項卡,我要調用SecondFunction,而不是click()函數。 –

+0

你的意思是'SecondFunction'在點擊函數完成之前運行?奇怪的是,點擊函數的代碼是什麼?確保它不是異步的 – lx1412

回答

0

我可能是錯的,但我相信JavaScript的事件流的工作方式是,你可以在0像超時包裹SecondFunction():

setTimeout(secondFunction,0); 

即使超時爲0,JavaScript的排隊事件在當前事件流完成後開始。

我會測試並取回給您。

0
setTimeout(function() { $(this).click(); }, 0); 
+0

你是說要調用這個函數,然後secondFunction()? @ lx1412 –

+0

是的,他們幾乎同時運行 – lx1412

+0

我不希望它在同一時間運行。我要先完成第一個點擊功能,然後執行第二個功能。 –

相關問題