2017-05-08 30 views
0

我有兩個javascript函數,我希望它們都在我按下按鈕時運行。我嘗試了不同的東西,但只有一個會工作,而不是另一個。我在按鈕上運行函數startTimer onclick,但不知道如何運行顯示文本的第一個函數。運行兩個不同的javascript函數onclick

JS:

$(function() { 
    count = 0; 
    wordsArray = ["Text 1", "Text 2", "Text 3", "Text 4", "Text 5"]; 
    setInterval(function() { 
    count++; 
    $(".questions1").fadeOut(400, function() { 
     $(this).text(wordsArray[count % wordsArray.length]).fadeIn(400); 
    }); 
    }, 8000); 
}); 


    function displayNextImage() { 
       x = (x === images.length - 1) ? 0 : x + 1; 
       document.getElementById("img").src = images[x]; 
      } 

      function displayPreviousImage() { 
       x = (x <= 0) ? images.length - 1 : x - 1; 
       document.getElementById("img").src = images[x]; 
      } 

      function startTimer() { 
       setInterval(displayNextImage, 8000); 
      } 

      var images = [], x = -1; 
      images[0] = "img/question-2.png"; 
      images[1] = "img/question-3.png"; 
      images[2] = "img/question-4.png"; 
      images[3] = "img/question-5.png"; 
      images[4] = "img/question-6.png"; 

HTML

<img id="img" src="img/question-1.png" alt=""> 
<h1 class="questions1">Text 1</h1> 

<button id="begin" onclick = "startTimer()">Begin</button> 
+0

最簡單* onclick =「startTimer()|| displayNextImage()」* –

+0

@Jonasw是否這樣工作?我會想'onclick =「startTimer(); displayNextImage()」' – Danmoreng

+0

@Danmoreng也是這樣 –

回答

4

你應該觸發通過jQuery這個按鈕,而不是使用HTML的onclick屬性。

例如,你可以這樣做:

$('#begin').on('click', function(){ 
    firstFunction(); 
    secondFunction(); 
}); 

而且你會當你點擊該按鈕執行兩種功能。

+0

我試過這個,但是文本在點擊按鈕之前仍然運行,並且圖像不會改變。 – andrea

1

你需要一個函數來管理你想要發生的事情。我會創建一個包裝函數來調用這兩個函數。

function onClickWrapper(){ 
     //Do onclick stuff 
     startTimer(); 
     otherFunction(); 
    } 

然後,只需修改HTML:

<img id="img" src="img/question-1.png" alt=""> 
<h1 class="questions1">Text 1</h1> 

<button id="begin" onclick = "onClickWrapper()">Begin</button> 
0

您可以直接打電話給您單擊處理中所需的兩種功能,如:

function onClick(){ 
    startTimer(); 
    otherFunction(); 
} 

你可能要考慮關於函數名稱更多,但這是一般結構。