首页 > 解决方案 > 单击内部函数内部的按钮时如何返回外部函数的值?

问题描述

我有两个带有文本确定和取消的按钮。

<div class="buttons-div">
   <button class='cancel'>Cancel</button>
   <button class='ok'>Ok</button>
</div>

我的功能如下:

function outerFunc() {
   function innerFunc() {
     const btns = document.querySelectorAll('.buttons-div')
       btns.forEach(btn => {
         btn.onclick = (e) => {
           if(e.target.classList.contains('cancel')) {
             return false;
           } else {
             return true;
           }
         }
       }
     )
   }
   
   return innerFunc()
}

const myBoolean = outerFunc()

我想在outerFunc()单击两个按钮之一时返回一个真值或假值。

标签: javascripthtmlcsscurrying

解决方案


我在这里猜测,一旦单击任一按钮,您想执行一些操作,具体取决于是否单击了“确定/取消”按钮。以下内容对您有帮助吗?

https://jsfiddle.net/8sy2mh4z/

function buttonClick(okClicked) { 
  console.log(okClicked);
  // TODO - implement logic based on button click
}

function initButtons() {

  document.querySelectorAll('.buttons-div').forEach(btn => {
    btn.onclick = (e) => {
      if(e.target.classList.contains('cancel')) {
        buttonClick(false);
      } else {
        buttonClick(true);
      }
    }
  });
}

initButtons();

推荐阅读