【问题标题】:How do I disable the onclick event如何禁用 onclick 事件
【发布时间】:2011-06-11 03:32:22
【问题描述】:

如何禁用 onclick 事件?
我试过onclick="this.disabled=true;",但是不行。

这是一个 HTML 表格:

<table>
  <tr>
     <td onclick="parent.location='home.php'">Available</td>
     <td onclick="parent.location='home.php'">Available</td>
  </tr>
  <tr>
     <td onclick="parent.location='home.php'"><div onclick="this.disabled=true;">Booked</div></td>
     <td onclick="parent.location='home.php'">Available</td>
  </tr>
</table>

使用上面的代码,它仍然是 home.php,即使我点击标记为“已预订”的表格单元格。

【问题讨论】:

    标签: javascript events html-table onclick


    【解决方案1】:

    你需要防止事件向上冒泡..最简单的方法:

    <div onclick="event.cancelBubble = true;">Booked</div>
    

    在 IE8、Chrome 和 Firefox 上测试成功。

    【讨论】:

    • @boy 欢呼,虽然 Derek 的回答是正确的:你最好在 PHP 代码中有逻辑生成这个..
    【解决方案2】:

    您应该使用返回 false 的函数覆盖 onclick(如:“点击已消耗”)。所以你会做类似的事情

     onclick="return false;"
    

    等等。我的意思是 false :)

    【讨论】:

    • 我把return false放在哪里:)
    • 没有任何效果.. 事件仍会向上冒泡到&lt;td&gt; 并且页面将被重定向。这个技巧适用于链接和按钮,而不是任何元素。
    【解决方案3】:

    就个人而言,我认为最好将“onclick”从 TD 中移除,并将其放在其中的 div 上(类似于您的预订方式)。然后你可以在你的 PHP 逻辑中决定是在 div 上放置一个“onclick”还是关闭它(你不需要尝试覆盖它)。

    【讨论】:

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