【问题标题】:Safari onClick event on button sporadically not workingSafari onClick 按钮上的事件偶尔不起作用
【发布时间】:2015-08-17 16:26:46
【问题描述】:

我使用的是 Safari 版本 8.0.7。我有一组设置了内联onClick 事件的按钮。在大约 90% 的时间里,它们工作得非常好,但有时按钮不会触发事件。如果我重新加载页面或返回页面,它就会工作。它只是偶尔不起作用。是否存在会导致此问题的已知错误,或者我的代码中是否存在某些问题?以下是相关代码:

按钮:

<div class="col-md-6">
    <?php if ($currentPage > 1) : ?>
    <button class='btn btn-lg btn-default' onClick="progressInstructions(<?=$currentPage;?>, 'back')"><strong><i class="fa fa-chevron-left"></i> Back</strong></button>
    <?php endif; ?>
</div>
<div class="col-md-6 text-right">
    <?php if (!isset($lastPage)) : ?>
    <button class='btn btn-lg btn-default' onClick="progressInstructions(<?=$currentPage;?>, 'forward')"><strong>Continue <i class="fa fa-chevron-right"></i></strong></button>
    <?php else: ?>
    <button class='btn btn-lg btn-default' id="begin_practice"><strong>Begin Practice <i class="fa fa-chevron-right"></i></strong></button>
    <?php endif; ?>
</div>

progressInstructions 代码:

function progressInstructions(currentPage, direction) {
    $('#page_' + currentPage).hide();
    if (direction == 'forward') {
        $('#page_' + (currentPage + 1)).show();
    } else {
        $('#page_' + (currentPage - 1)).show();
    }
}

任何帮助将不胜感激!

编辑

经过进一步测试,它似乎仅在指针位于按钮的顶部边框或“继续”或“返回”标签周围区域的顶部和底部附近或附近时发生。我不确定这是否有帮助。

另外,我正在使用 Bootstrap 进行页面设计。

【问题讨论】:

  • 我也遇到了这个问题。

标签: javascript button safari onclick dom-events


【解决方案1】:

我会检查两件事来帮助调试它。首先,确保您的按钮上的 onclick 实际上没有被调用。 Safari 的 onclick 应该没有任何问题。简单的检查方法是将 console.log 或 alert 直接放在按钮上:

<button onclick="console.log('Hello')"></button>

如果它实际上没有被调用,很可能是因为另一个元素遮住了它。我会检查 z 轴以确保它不在其他东西下方

【讨论】:

  • console.log 的触发与调用之前的 onclick 函数时完全相同。即,如果我单击按钮上除顶部边框附近以外的任何位置,它会触发,但在按钮的顶部边框附近则不会。这会是由 z 轴问题引起的吗?我该如何检查?
  • 尝试在 chrome 开发工具中检查它,并使用一些额外的 css 规则来测试它,比如 z-index: 99999; 或者 position: fixed; top: 100px; left: 100px; 看看
  • 我试过了,我得到了同样的结果。这很奇怪,因为它仅不适用于按钮的最顶部边框以及按钮标签上方和下方的区域。非常具体,小区域。使用 Bootstraps 按钮标签会导致这种情况吗?
  • 引导按钮应该没问题,具体取决于周围的样式和覆盖。我想知道你是否可以在 plnkr 中重现问题
猜你喜欢
  • 2014-10-30
  • 2019-01-16
  • 1970-01-01
  • 2017-07-18
  • 1970-01-01
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多