包含 if 和 .each() 的 jQuery 函数在 IE7 中非常慢

2023-12-27

我基本上搜索具有特定数据属性的元素,因此我循环遍历具有可能具有这些数据属性的类的所有元素。我使用 jQueryeach() 函数进行循环,并且已经阅读并体验到,与其他常见浏览器(如 Firefox、Chrome 或 Safari)相比,它在 IE7 或任何其他 IE 中通常相当慢。

也许有更好的方法来找到这些元素?!

$('body').on('mouseenter', '.course', function(){
        var startday = $(this).data('start');
        var endday = $(this).data('end');
        var coursemonth = $(this).data('month');

        $('.dayname').each(function() {
            var thisday = $(this).data('date');
            var thismonth = $(this).data('month');

            if(thisday >= startday && thisday <= endday && thismonth == coursemonth)
            {
                $(this).addClass('red');
            }
        })
});

我使用 .each() 循环的上下文是一个天数列表,实际上只是所有 30 天或一个月中的天数,最多 6 个月。每天都包含格式为“mmdd”的日期以及作为数据属性的月份。

            <div class="dayname we" data-date="0401" data-month="04">So</div>
            <div class="dayname " data-date="0402" data-month="04">Mo</div>
            <div class="dayname " data-date="0403" data-month="04">Di</div>
            <div class="dayname " data-date="0404" data-month="04">Mi</div>
            <div class="dayname " data-date="0405" data-month="04">Do</div>

Update:不幸的是,所有提高选择器和元素性能的技巧和提示都失败了。但我仍然希望能够让它发挥作用。我真的没有一个正确的想法,但我不知怎的感觉可能有一种方法像 find() 和一个选择器能够区分更高和更低的数字(正如你在标记中看到的那样) )我的数据属性只是数字。 有没有办法在选择器中进行比较?这样我就可以省略 .each() 并希望能够解决性能问题。


您可以优化代码,通过减少调用次数来帮助提高性能data方法并创建 jQuery 对象实例this元素。

var $dayName = $('.dayname');
$('body').on('mouseenter', '.course', function(){
        var dataObj = $(this).data();

        $dayName.each(function() {
            var $this = $(this);
            var innerDataObj = $this.data();

            if(innerDataObj.date >= dataObj.start 
               && innerDataObj.date <= dataObj.end 
               && innerDataObj.month == dataObj.month)
            {
                $this.addClass('red');
            }
        })
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

包含 if 和 .each() 的 jQuery 函数在 IE7 中非常慢 的相关文章

随机推荐

  • Angular 4:`ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后已更改

    我的子模块中的每个 EventEmiiter 都会出现此错误 但我找不到解决此问题的方法 ExpressionChangedAfterItHasBeenCheckedError Expression has changed after it
  • 设置自定义表格视图单元格的背景图像

    我尝试了多种方法来设置未选定的表格单元格的背景图像 但没有成功 1 In IB setting the image field 2 cell contentView backgroundColor UIColor alloc initWit
  • Rails:渲染模型?

    我可以想到一百万种非自动的方法来在 Rails 中渲染模型 但我想知道是否有一些内置的方法可以做到这一点 我希望能够做到这一点 显然 使用部分你可以做到这一点 我的意思是 调用 render partial 但我想知道是否有一些标准方法联系
  • 使用 Enzyme 测试 Redux 连接的组件

    使用酶测试 redux 连接组件时遇到问题 import React from react import shallow mount render from enzyme import configure from enzyme impor
  • 从其他应用程序调用服务的权限

    可能的重复 服务许可 https stackoverflow com questions 4967962 permission for services 从android启动服务时出现权限问题 https stackoverflow com
  • 具有赫维赛德/阶跃函数的神经网络学习算法

    是否有前馈神经网络训练算法的实现 或直接描述 该算法不使用 sigmoid 或线性挤压函数 而是使用不可微的函数 例如赫维赛德函数 我已经找到了一个关于这种算法的论文 http ieeexplore ieee org iel3 1059 7
  • 代理密钥 RSA SHA256 返回错误的签名类型

    我正在将 vscode 开发容器与 docker 一起使用 但在与容器共享 git 时遇到问题 我已经设置了 git ssh add ssh agent 如下所示here https code visualstudio com docs r
  • 从多 mips 中获取结果

    我是汇编语言的新手 我对乘法感到非常困惑 我正在阅读快速教程here http logos cs uic edu 366 notes mips 20quick 20tutorial htm 死链接 网络存档在这里 https web arc
  • 为什么 Postgres 中的坏行估计速度很慢?

    是什么让错误的行估计成为 SQL 查询性能的痛点 我很想知道其内部原因 通常 错误的行估计实际上会选择正确的计划 而好查询和坏查询之间的唯一区别是估计的行数 为什么经常出现如此巨大的性能差异 是因为 Postgres 使用行估计来分配内存吗
  • 如何从数据库中获取数据并在 PHP 中显示?

    如何使用 php 从数据库获取数据并显示它 数据库表有列 标记为ID Number ID 是唯一且固定的 而 Number 只是一个非唯一的数字 如果有人来访http example com show php ID 32 and show
  • 行尾短语的正则表达式

    我正在抓取一个文本块 在该块中将有一行包含以 WITH PASSWORD kEqHqPUd 结尾的短语 其中 kEqHqPUd 是动态生成的密码 用于仅获取其中密码的简单正则表达式是什么 我正在使用 PHP preg match WITH
  • 在 C# 中验证 DLL

    我有一个 exe 它使用 Castle Windsor 来实现插件机制 我需要验证我加载的插件是否来自我 而不是一些恶意代码 我相信我需要使用非对称密钥 可能是 SNK 对 exe 和 dll 进行签名 首先 这是正确的吗 我该怎么做 其次
  • Android Clipboard.getText() 已弃用;那么如何获取其中的文本项呢?

    这工作正常 准确地向我展示了放入 Android 剪贴板的最后一个字符串是什么 它恰好是euswcnmst Log w clip clipboard getText toString But getText已弃用clipboard对象 同时
  • Apple 推送通知 - PHP - SSL 操作失败,代码 1

    在过去的几天里 当我们使用套接字连接到生产服务器上的 APN 服务器时 我们遇到了一些奇怪的 PHP 行为 大多数情况下 有效负载的推送不会出现任何错误 并且客户端会收到通知 然而 在某些情况下 我们开始收到 PHP 错误 即使我们收到错误
  • 如何在 C++ 中克隆对象?或者还有其他解决方案吗?

    我编写了一个堆栈和队列实现 基于链表 有一个栈 bigStack 比如我分开bigStack 例子 stackA and stackB I pop 一个节点来自bigStack I push in stackA 以同样的方式 我push i
  • 如何使用子进程Popen.communicate()方法?

    我正在尝试将 bash 命令的标准输出作为 Python 中的字符串获取 下列的Popen https docs python org 2 library subprocess html subprocess Popen文档 我已经尝试过
  • 如何在 Django 中聚合单个查询集?

    简短的介绍 给定一个查询集myQueryset 我该如何选择max myfield 没有实际检索所有行并执行max在Python中 我能想到的最好的是max r myfield for r in myQueryset values myfi
  • CSS3中有没有办法为列指定不同的宽度?

    我想使用 CSS 来呈现两列布局 我正在使用的标记是这样的 div style margin left 20px margin top 20px div picture box div div name div div 有没有办法让一列的宽
  • 是否可以在越狱的ios上使用外部键盘模拟触摸事件?

    是否可以在 iOS 越狱以及越狱涉及的所有元素上模拟特定屏幕坐标中的触摸事件 按下物理外部键盘 通过相机连接套件或蓝牙的 USB 上的特定按键 我会用它来用脚按下应用程序中的按钮 幅度 我想使用键盘作为脚踏开关 仅供私人使用 没有应用商店或
  • 包含 if 和 .each() 的 jQuery 函数在 IE7 中非常慢

    我基本上搜索具有特定数据属性的元素 因此我循环遍历具有可能具有这些数据属性的类的所有元素 我使用 jQueryeach 函数进行循环 并且已经阅读并体验到 与其他常见浏览器 如 Firefox Chrome 或 Safari 相比 它在 I