首页 > 解决方案 > 如何使用 JavaScript 中的点击方法访问外部函数的内部函数?

问题描述

var pick = {};

function pick0() {
  pick.value = document.getElementById('box00').getAttribute('data-value');
}

function myCheck() {
  function drop() {
    var content = document.getElementById('box');
    content.innerHTML = pick.value;
  }
}
#box {
  background-color: #f1f1f1;
  width: 60px;
  text-align: center;
  height: 50px;
  font-size: 30px;
  border: 1px solid black;
}

#box00 {
  background-color: #f1f1f1;
  width: 60px;
  text-align: center;
  height: 50px;
  font-size: 30px;
  border: 1px solid black;
}
<div id="box" onclick="drop()"></div>
<br>
<button type="button" id="button" onclick="myCheck()">CHECK</button>
<br><br>
<div id="box00" data-value="0" onclick="pick0()">0</div>

这些是我的代码。在这里,我想在按下按钮后将值从“Box00”复制到“Box”。如果不按下按钮,我不想复制该值。我尝试了很多方法,但我找不到解决这个问题的方法。我希望你能理解我的问题。请帮我。

标签: javascripthtmljquery

解决方案


我不清楚您试图通过嵌套函数实现什么。

您的操作确实有问题,因为drop()假设pick.value将被设置,但pick.value只能通过调用来设置pick0()。我们希望单击按钮自行工作。您尝试做的所有事情都可以通过这个函数来处理:

function myCheck() {
    // find the target "box" element
    var content = document.getElementById('box');
    // set the "box"'s content to the data-value from "box00"
    content.innerHTML = document.getElementById('box00').getAttribute('data-value');
}

除非您想添加其他功能,否则您似乎不需要两个框本身的单击处理程序。


推荐阅读