2017-05-08 75 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(); 
} 

你可能要考虑关于函数名称更多,但这是一般结构。