当开发人员工具打开时,Javascript onclick不会启动

当开发人员工具打开时,Javascript onclick不会启动,javascript,html,twitter-bootstrap-3,Javascript,Html,Twitter Bootstrap 3,我最近遇到了一个问题,当浏览器中的开发人员工具打开时,HTML按钮的onclick事件没有触发,但当工具关闭时它确实触发: <button type="button" data-bind="visible: !$root.LocalEventId(), click: StartEvent.bind($data, 'lunch')" class="btn btn-success"><i class="fa fa-cutlery"> </i> G

我最近遇到了一个问题,当浏览器中的开发人员工具打开时,HTML按钮的onclick事件没有触发,但当工具关闭时它确实触发:

<button type="button" data-bind="visible: !$root.LocalEventId(), click: StartEvent.bind($data, 'lunch')" 
        class="btn btn-success"><i class="fa fa-cutlery">
</i> Going to Lunch</button>

去吃午饭
有几个原因让我感到困惑:

  • 在IE、Chrome和Firefox中,开发工具关闭时工作,而打开时不工作的行为是一致的
  • 这种行为与我在网上能找到的所有其他相关问题完全相反。在许多情况下,JavaScript事件仅在开发工具打开时起作用,但在开发工具关闭时停止工作。这些案例中的大多数似乎与写入控制台有关
  • 同样的代码在iPad上的Safari上不一致地失败了。有些用户和某些情况下,它不起作用,但在其他情况下,它确实起作用

我最终还是解决了这个问题。请参阅下面我的答案。

这个问题有两个相互关联的原因:

  • it在打开开发工具时工作,而在关闭开发工具时不工作的根本原因与窗口大小有关。窗户够窄时,虫子就露了出来

    • 由于我在所有浏览器中都将开发工具停靠在窗口的右侧,因此当我打开它们时,它们将窗口缩小到足以显示错误的程度。当我关闭开发工具时,窗口变宽了,bug消失了
    • iPad上的Safari之所以不一致,是因为它取决于用户拿iPad的方式。如果他或她是在横向模式下举行,那么屏幕更宽,错误没有显示。如果他或她在肖像模式下拿着它,那么屏幕就会变得足够窄,以至于可以看到虫子
  • 代码中的实际错误与使用引导有关。此按钮是引导布局的一部分。以前实现此功能的开发人员意外地将
    嵌套在
    中,而不是反过来。当我将列放入行中时,错误消失了