jQuery Click 功能在 Firefox 中有效,但在 Chrome/Safari 中无效

benji_croc

我有一个调整 div 边距的按钮。我有一个将进度条的宽度转换为百分比的函数。然后根据单击下一个或上一个按钮时的条形百分比应用适当的边距。

这在 Firefox 中运行良好,没有抛出错误,但是在 Safari 和 Chrome 中,除了识别出点击之外,它根本不起作用。进度条不会移动,所以这似乎是 widthPerc 函数的问题,因为它没有超过条件。我没有写函数(可以在这里找到 - jQuery if width is equal to percent

我自己的点击功能如下 -

$.fn.widthPerc = function() {
    var parent = this.parent();
    return ~~((this.width() / parent.width()) * 100) + '%';
};
$('.next-q').not('.two-questions .next-q').click(function() {
    var container = $(this).parents().eq(2);
    var questions = container.find('.questions');
    var progress = container.find('.form-progress .bar');
    var prev = container.find('.prev-q');
    var prevone = container.find('.question-steps.questions-one .prev-q');
    var prevs = container.find('.prev-s');
    var complete = container.find('.complete-q, .next-s');
    if (progress.widthPerc() === '66.66%') {
        progress.animate({
            width: '-=33.33%',
        }, 400);
        questions.css({
            'margin-left': '-100%'
        });
        prevs.fadeOut('400', function() {
            prev.fadeIn('400');
        });
        prevone.fadeIn('400');
    } else if (progress.widthPerc() === '33.33%') {
        progress.animate({
            width: '-=33.33%',
        }, 400);
        questions.css({
            'margin-left': '-200%'
        });
        $(this).fadeOut('400', function() {
            complete.fadeIn('400');
        });
    }
});
所罗门

您的widthPerc函数很可能正在返回一个精度高于两位小数的浮点数,因此可能类似于66.666667%. 在比较宽度百分比时,尝试使用实际数字而不是字符串,并尝试对数字进行四舍五入以解决精度上的细微差异。例如:

$.fn.widthPerc = function() {
    var parent = this.parent();
    return Math.round10(this.width() / parent.width() * 100, -2);
};

然后做以下比较:

if (progress.widthPerc() >= 33.33) {
    // do stuff
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Firebase 功能在模拟器中有效,但在浏览器中无效

在Chrome或Firefox中,jquery $ .ajax调用会导致401未经授权的响应,但在IE中有效

我的合并排序功能在 Java 中有效,但在 JavaScript 中无效,我错过了什么?

内联在 CSS 中的 SVG 在 Chrome/Edge 中有效,但在 Firefox 中无效

MySQL存储功能在Laravel中造成访问冲突:1305,但在phpmyadmin中有效

代码在Firefox Scratchpad中有效,但在代码中无效

伪元素在 Firefox 中有效,但在 Chrome 中无效,为什么?

解构错误对象在Chrome中有效,但在Firefox中无效。该怎么办?

Selenium 测试用例在 Firefox 中有效,但在 Chrome 中无效 - Headless Setup

使用 webdriver (C#) 上传文件在 Firefox 中有效,但在 IE 中无效

jQuery 脚本在 HTML 中有效,但在外部文件中无效

display:none 在 CSS 中有效,但在 jQuery 中无效

$ _POST和javascript –在javascript中有效,但在jquery插件中无效

AJAX在jQuery中有效,但在香草JS中无效

元素上的過渡在 Chrome 中有效,但在 Firefox 中無效

.dll的功能在vb.net中失败,但在vb6中有效

位置粘性在 Firefox 中有效,在 Chrome 中无效

mysql查询功能在python shell中有效,但在python中运行时出现ImproperlyConfigured错误

相同的自动完成功能在一种解决方案中有效,但在另一种解决方案中无效

应用于音频元素的样式在 firefox 和 safari 中有效,但在 chrome 中无效

JavaScript搜索功能在Chrome,Safari和Opera中非常有效,但在IE和Firefox中却永远存在

'innerText'在IE中有效,但在Firefox中不可用

window.open在Firefox中有效,但在IE或Chrome中不起作用

日期构造函数在IE中返回NaN,但在Firefox和Chrome中有效

单一测试在PhantomJS中失败,但在Chrome和Firefox中有效

我的专栏文章将在Firefox / Safari中换行,但在Chrome中有效

Rmarkdown flexdashboard值框在Chrome或IE中无法正确呈现(但在FireFox中有效)

解析XML标签属性在Firefox中有效,但在Chrome中不起作用

单选按钮在谷歌浏览器中有效,但在Firefox中不起作用