在函数内部传递本地变量

3

点击下面的 DIV 后,没有任何反应。错误在哪里?

<div onclick="function dummy(that) { alert(that.toString())}" class="next">></div>

Please help.

5个回答

5
您定义了 "dummy" 但没有调用它。我认为它在HTML的 "onclick" 属性中是行不通的。我建议您将 dummy() 移动到一个单独的代码块中:
<script type='text/javascript'>
function dummy(that) { alert(that.toString())}
</script>

然后:
<div onclick="dummy(this);" class="next">></div>

或者像这样以编程方式附加函数:

document.getElementById("myDummyDIV").onclick = function(event) { ..... }

2
这应该可以解决问题:
<div onclick="dummy(this);" class="next"></div>

<script type="text/javascript">
function dummy(that) {
    alert(that.toString());
}
</script>

2

实际上这有点傻。你声明的函数是无法作为一个函数使用的,除非你打算做一些更神奇的事情并在其他地方调用此链接的单击事件。然而,如果你坚决要将函数声明放在onclick事件中,可以这样做:

<div onclick="(function dummy(that) { alert(that.toString())})();" class="next">></div>

您最终将函数放在自己的代码块中,然后在末尾加上(),这告诉解析器执行它。


2

这是一个函数声明,不是调用。

您可以像这样做:

(function dummy(that) { alert(that.toString())}) (event);

完整的HTML代码如下:

<div onclick="(function dummy(that) { alert(that.toString())})(event);" class="next">></div>


1

你不需要在这里创建函数 你只需要写以下内容就可以了

<div onclick="alert(that.toString())" class="next">></div>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接