在函数内传递局部变量

时间:2010-01-19 13:17:58

标签: javascript

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

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

请帮忙。

5 个答案:

答案 0 :(得分: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) { ..... }

答案 1 :(得分:2)

这应该可以解决问题:

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

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

答案 2 :(得分:2)

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

你可以这样做:

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

,完整的HTML将是:

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

答案 3 :(得分:2)

实际上这很愚蠢。您声明的函数作为函数不可用,除非您打算做一些更奇妙的事情并从其他方法调用此链接的click事件。但是,如果你真的想要将函数声明放在onclick事件中,那么就可以这样做:

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

你最终将函数放在它自己的块中,然后最后的()告诉解析器这样做。

答案 4 :(得分:1)

你不在这里创造功能 你可以写下面的

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