【问题标题】:onclick event function in JavaScriptJavaScript 中的 onclick 事件函数
【发布时间】:2011-03-28 01:57:57
【问题描述】:

我在带有按钮的 HTML 页面中有一些 JavaScript 代码。我有一个名为click() 的函数来处理按钮的onClick 事件。按钮的代码如下:

<input type="button" onClick="click()">button text</input>  

问题是当按钮被点击时,函数没有被调用。我在这里做错了什么?

【问题讨论】:

  • 您是否在控制台中遇到错误?你能发布点击功能。它对我有用 here
  • 我认为你需要在这样的函数后面加一个分号:&lt;input type="button" onClick="click();"&gt;button text&lt;/input&gt;
  • 试试...onclick="javascript:click();"
  • onclick 已经采用了它的 JavaScript。你只会使用 javascript:click();如果您正在为链接设置 href。此外,除非还调用了第二个函数,否则不需要分号。
  • 你在哪里声明/放置了 click() 函数?它在正确的范围内吗?

标签: javascript html dom-events event-driven


【解决方案1】:

两个观察结果:

  1. 你应该写

    <input type="button" value="button text" />
    

    而不是

    <input type="button">button text</input>
    
  2. 您应该重命名您的函数。函数click() 已在按钮上定义(它模拟点击),并获得比您的方法更高的优先级。

请注意,这里有一些明显错误的建议,您不应该在这些建议上花费太多时间:

  • 不要使用onclick="javascript:myfunc()"。仅在超链接的href 属性内使用javascript: 前缀:&lt;a href="javascript:myfunc()"&gt;
  • 您不必以分号结尾。 onclick="foo()"onclick="foo();" 都可以正常工作。
  • HTML 中的事件属性不区分大小写,因此onclickonClickONCLICK 都有效。以小写形式编写属性是常见的做法:onclick请注意,javascript 本身是区分大小写的,所以如果你写 document.getElementById("...").onclick = ...,那么它必须全部小写

【讨论】:

  • 这只是我在带有 IE5 的 Windows 95 上编写的示例脚本,所以我没有使用任何 DOM 东西,因为我不知道它的支持程度。不过我会试试的。谢谢
  • 是的,我只需要更改我的函数名称就可以了。再次感谢!我真的被卡住了
  • @ElianEbbing 感谢您花时间解释其中的一些事情......尽管它们很小,但它们确实帮助我理解了我做错了什么。
  • @ElianEbbing jsfiddle.net/hiteshbhilai2010/gs6rehnx/4 .... 你能看到它有同样的问题
  • @hitesh 不,这是一个不同的问题:JSFiddle 将所有 javascript 代码放在 $(window).load(function() { ... }) 中。这意味着test() 不可全局访问。如果您将左侧的下拉列表从 onLoad 更改为 No wrap,那么您的示例应该可以在 JSFiddle 中使用。
【解决方案2】:

click() 是保留字,已经是函数了,把名字从 click() 改成 runclick() 就可以了

【讨论】:

    【解决方案3】:

    试试这个

    <input type="button" onClick="return click();">button text</input>  
    

    【讨论】:

      【解决方案4】:

      检查你是否调用了相同的函数。

      <script>function greeting(){document.write("hi");}</script>
      
      <input type="button" value="Click Here" onclick="greeting();"/>
      

      【讨论】:

        【解决方案5】:

        尝试修正大写。 onclick 而不是 onClick

        参考:Mozilla Developer Docs

        【讨论】:

        • 您的链接是 XUL 链接。这就是你想要的:developer.mozilla.org/en/DOM/element.onclick
        • 谢谢,我已经修复了那个链接。
        • 所有大写字母都有效,浏览器不应该关心它是 onClick、ONCLICK、onclick、Onclick 还是其他任何东西。我更喜欢骆驼符号,所以我使用它
        • 你是对的。 Javascript 区分大小写,这可能是我困惑的根源。
        • 连mdn上的doc都是小写的,你把你的困惑写在别人的问题上,不好
        【解决方案6】:

        我建议你这样做: &lt;input type="button" value="button text" onclick="click()"&gt; 希望对您有所帮助!

        【讨论】:

        • 我认为问题在于他的“onclick”属性,而不是文本值的显示方式。
        【解决方案7】:
        <script>
        //$(document).ready(function () {
        function showcontent() {
                document.getElementById("demo22").innerHTML = "Hello World";
        }
        //});// end of ready function
        </script>
        

        我遇到了同样的问题,onclick 函数调用不起作用。我已将函数包含在通常的“$(document).ready(function(){});”中用于包装 jquery 脚本的块。注释掉这个块解决了这个问题。

        【讨论】:

          【解决方案8】:

          是的,您应该更改函数的名称。 Javascript 保留了方法,onclick = >>>> click() 强文本`

          【讨论】:

            【解决方案9】:

            今天这也发生在我身上。函数名可能与关键字冲突。我的案例是scrape()。我改了函数名,一切正常。

            【讨论】:

              【解决方案10】:

              一个项目不响应事件的一个可能原因是该项目与另一个项目重叠。 在这种情况下,您可能需要为要点击的项目设置更高的z-index

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-10-15
                • 1970-01-01
                • 1970-01-01
                • 2014-12-20
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多