【问题标题】:passing a local variable within the function在函数中传递局部变量
【发布时间】:2010-01-19 13:17:57
【问题描述】:

通过单击以下 DIV,没有任何反应。 哪里出错了?

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

请帮忙。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您正在定义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>
      

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

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

          你可以这样做:

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

          完整的 HTML 将是:

          &lt;div onclick="(function dummy(that) { alert(that.toString())})(event);" class="next"&gt;&gt;&lt;/div&gt;

          【讨论】:

            【解决方案5】:

            你没有在这里创建函数 你可以写下面的

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多