[英]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.