传递函数中的局部变量

问题描述:

通过单击以下DIV,什么都不会发生。 错误在哪里?传递函数中的局部变量

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

请大家帮忙。

您正在定义dummy但未调用它。我不认为它是这样工作的,而不是在HTML onclick属性中。

我建议你移动假()到一个单独的代码块:

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

然后:

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

或编程附加功能,像这样:

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

这应该这样做:

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

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

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

你可以做这样的事情:

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

和完整的HTML是:

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

你不要在这里创建功能 你可以像下面

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

这实际上很愚蠢。你声明的函数作为一个函数是不可用的,除非你打算做一些更好的东西,并从其他方法的其他方法调用此链接的click事件。但是,如果你一意孤行换皮一心想把函数声明在onclick事件,这是可以做到这样:

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

你最终把功能在它自己的块,然后最后的()会告诉解析器执行它。