繁体   English   中英

将onclick更改为以变量作为参数的函数

[英]Changing the onclick to a function with a variable as the argument

所以这是我正在做的一个愚蠢的版本。 我想更改一个span的onclick来调用一个以变量作为参数的函数。 我希望它在我创建新的onclick时使用变量,因为它不是因为变量是在点击时。

<html>
<head>
<script>
function share(it) {
  alert("We wanted 1, we got "+ it);
}
</script>
</head>
<body>
<span id="key">Click me</span>

<script>
var x = 1;
document.getElementById('key').onclick = function() {share(x)}
x++;
</script>

</body>
</htmL>

我想你需要这个:

<html>
<head>
<script>
function share(it) {
  alert("We wanted 1, we got "+ it);
}
</script>
</head>
<body>
<span id="key">Click me</span>

<script>
function assign(y) {
   return function() { share(y); };
}
var x = 1;
document.getElementById('key').onclick = assign(x);
x++;
</script>

</body>
</html>

不要直接使用函数(),使用创建onclick函数的函数:

<html>
<head>
<script>
function share(it) {
  alert("We wanted 1, we got "+ it);
}

function makeFunction(x) {
return function() {share(x);}
}

</script>
</head>
<body>
<span id="key">Click me</span>

<script>
var x = 1;
document.getElementById('key').onclick = makeFunction(x)
x++;
</script>

</body>
</html>

制作x的副本并将其传递给函数

<html>
<head>
<script>
function share(it) {
  alert("We wanted 1, we got "+ it);
}
</script>
</head>
<body>
<span id="key">Click me</span>

<script>
var x = 1;
var copyOfx = x + 0;
document.getElementById('key').onclick = function() {share(copyOfx)}
x++;
</script>

</body>

您需要做的就是在头部声明变量。 该变量是用户定义和硬编码的,因此它可以加载到头部,然后在单击发生时在函数中引用它。 您不需要传递参数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM