пытаясь получить мою кнопку, чтобы изменить текст без взаимодействия с пользователем JavaScript - PullRequest
0 голосов
/ 22 ноября 2018

Я сделал функцию кнопки, в которой есть кнопка со словом, и при ее нажатии показывается определение.но теперь я пытаюсь сделать так, чтобы кнопки показывали определение каждые пару секунд с помощью «SetInterval» без необходимости нажимать, и я не знаю, как это сделать, пожалуйста, помогите.

'use strict';
//below is the function for the even
$(document).ready(function() {
  //
  function salutationsHandler(evnt) {
    let box = $("#message-box");

    if (box.hasClass("hidden")) {
      box.attr("class", "");
      $(evnt.target).text("1.Salutation");
    } else {
      box.attr("class", "hidden");
      $(evnt.target).text('a greeting in words or actions');


    }

  }
  //end of function
  setInterval(salutationsHandler, 1000);

  //start of another
  function DiffidenceHandler(evnt2) {
    let box2 = $("#message-box2");

    if (box2.hasClass("hidden")) {
      box2.attr("class", "");
      $(evnt2.target).text("2.Diffidence");
    } else {
      box2.attr("class", "hidden");
      $(evnt2.target).text("the quality of being shy");
    }
    console.log(evnt2);
  }
  //lets me target id
  let salutationsGrab = $('#Salutations');
  // adds event to said id 
  // event listeners grab events from functions
  salutationsGrab.on('click', salutationsHandler);



  let DiffidenceGrab = $("#Diffidence");

  DiffidenceGrab.on("click", DiffidenceHandler);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>hello welcome to our dictionary</h1>
<h2>Click on button to reveal definition of word shown</h2>


<button id="Salutations">1.Saluation</button>
<div id="message-box"></div>
<br>
<button id="Diffidence">2.Diffidence</button>
<div id="message-box2"></div>
<br>

1 Ответ

0 голосов
/ 22 ноября 2018

Функция salutationsHandler нуждается в объекте события, созданном событием, чтобы работать.Вместо непосредственного вызова функции вы можете использовать jQuery .trigger(), чтобы «нажать» кнопку.

function salutationsHandler(evnt) {
  const box = $("#message-box");
  const target = $(evnt.target);

  if (box.hasClass("hidden")) {
    box.removeClass("hidden");
    target.text("1.Salutation");
  } else {
    box.addClass("hidden");
    target.text('a greeting in words or actions');
  }

}

let salutationsGrab = $('#Salutations');
salutationsGrab.on('click', salutationsHandler);

setInterval(() => salutationsGrab.trigger('click'), 1000);
.hidden {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>hello welcome to our dictionary</h1>
<h2>Click on button to reveal definition of word shown</h2>


<button id="Salutations">1.Saluation</button>
<div id="message-box">a greeting in words or actions</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...