【问题标题】:Bootstrap badge don't always appear in SafariBootstrap 徽章并不总是出现在 Safari 中
【发布时间】:2015-07-03 16:13:45
【问题描述】:

我有一个工具,它有 3 个标签,每个标签上有一些计数器。标签的标题应该有一个徽章,显示该标签上所有计数器的总数。如果总数为 0,则不应显示任何徽章。

这一切在 Chrome 和 Firefox 中运行良好,但在 Safari(在 OS X 和 iOS 上)我得到了一些我似乎无法调试的非常奇怪的行为。

我有一个带有一些非常简单代码的徽章:

<li role="presentation">
    <a href="#AB-bulk" aria-controls="AB-bulk" role="tab" data-toggle="tab" class="climb_type_nav">
        Auto-Belay       
        <span class="badge" id="AB-badge"></span>
    </a>
</li>

还有一些 javascript 来(重新)设置徽章跨度的 html 内容:

// reset badge counts
$.each($('.climb_type_nav').find('.badge'), function (i, x) {
    $(x).empty();
});

// get counts per climb type
$.each($('.input-number'), function (i, x) {
    var climbs = parseInt(x.value, 10);
    if (climbs > 0) {
        var shortName = x.getAttribute('climb_type_short_name');

        if (!ct[shortName]) {
            ct[shortName] = 0;
        }
        ct[shortName] += climbs;
    }
});

// set badge counts
$.each(ct, function (shortName, count) {
    $('#' + shortName + '-badge').html('<b>' + count + '</b>');
});

复制这个小提琴http://jsfiddle.net/ajLxsLc2/3/中的行为:

  1. 点击加号来更新计数器,或者只是手动输入一个数字并点击关闭输入 - 您会看到徽章出现在第一个选项卡上
  2. 单击减号将计数恢复为 0 -- 您会看到徽章消失
  3. 再次单击加号以更新计数器 - 这次徽章不会出现在 Safari 中
  4. 要显示徽章,请点击另一个标签或将鼠标悬停在您所在的标签上

我已经确认 HTML 值是在徽章的范围内设置的,只是由于某种原因在 Safari 中没有显示。非常感谢任何帮助!

【问题讨论】:

    标签: jquery twitter-bootstrap safari


    【解决方案1】:

    这是一个有趣的问题。我注意到徽章出现在鼠标悬停上,所以这似乎解决了它:

        // set badge counts
        $.each(ct, function (shortName, count) {
            $('#' + shortName + '-badge')
                .html('<b>' + count + '</b>')
                .parent().focus().blur();
        });
    

    看看at this updated fiddle

    【讨论】:

    • 这似乎可以解决问题,谢谢!知道为什么它会这样吗?是 Safari 中的错误还是我的代码中的某个错误?
    • 我认为这是一个错误。这看起来相关:stackoverflow.com/questions/10534136/…。如果您通过网络检查器切换元素上的任何 CSS 属性,您将看到它正确地重新呈现自身。这可能就是这里提到的方法有效的原因。它触发浏览器重新渲染元素。
    • @flyingL123 是的,这就是我想要的,触发重新渲染。肯定是奇怪的 Safari 错误。
    • @smenzer 那里发生了很多事情,但我认为您的代码的那部分没有问题。
    • 感谢你们 - 非常感谢!
    猜你喜欢
    • 2017-07-09
    • 2018-11-17
    • 2019-04-08
    • 2020-05-03
    • 1970-01-01
    • 2018-12-06
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多