JQuery подписаться на функцию возврата ошибки - PullRequest
0 голосов
/ 31 октября 2018

Имеют следующую функцию, которая вызывается событием изменения нескольких элементов.

function multipleTests(){
    if(Test_X == false){
        return false;
    }
    if(Test_Y == false){
        return false;
    }
    // all tests passed release save button
    releaseButton();
}

Я хочу подписаться на «возвращение ложного события». как то так:

multipleTest.bind("return false", function(){
    // do something here, like reset fields, other tests etc.
});

Должен ли я изменить функцию множественные тесты?

Можно ли использовать попробовать перехватить как-нибудь?

Можно ли как-нибудь использовать объект обещания?

1 Ответ

0 голосов
/ 31 октября 2018

Что вы можете сделать, это создать и вызвать пользовательское событие:

// create your custom event
var customEvent = new CustomEvent('my-custom-event',{
  detail: {
    tests: {
      x: null,
      y: null
    }
  }
});


// Listen for the event.
// You have to do this BEFORE dispatching the event
document.addEventListener('my-custom-event', function (e) {
   // print out the event detail
  console.log(JSON.stringify(e.detail));
}, false);

//triggered when the button is clicked
function multipleTests(){
  var Test_X = true;
  var Test_Y = false;
  
  //assign the outcome of the tests to the event detail
  customEvent.detail.tests.x = Test_X;
  customEvent.detail.tests.y = Test_Y;
  
  if(Test_X == false){
    document.dispatchEvent(customEvent);
    return false;
  }
  if(Test_Y == false){
    document.dispatchEvent(customEvent);
    return false;
  }
  // all tests passed release save button
//   releaseButton();
}
<input type=button value="trigger event" onclick="multipleTests()"/>

Ссылки:

https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...