javascript - 使用 jquery/javascript 执行以下操作的最佳做​​法是什么?

标签 javascript jquery

所以我只是想为悬停添加一些功能。下面的代码做了同样的事情,除了带有 for 循环的那个我将目标存储在一个数组中。我实际上有几个问题。

  1. 这是 stopPropagation 的正确用法吗?
  2. 执行此类操作的最佳做​​法是什么?
  3. 以下哪一种方法速度更快且使用的资源更少?
  4. 我知道我可以使用 hover() 但我使用 bind 是因为我认为它更快,我的想法是否正确?

谢谢

    for (var i in slides) {
        $(slides[i].el).bind( {
            mouseenter: function (event) {
                event.stopPropagation();
                // do something
            },
            mouseleave: function (event) {
                event.stopPropagation();
                //do something
            }
        });
    }

    $("#vehicleSlides .vehicleAreas").bind( {
        mouseenter: function (event) {
            event.stopPropagation();
            // do something
        },
        mouseleave: function (event) {
            event.stopPropagation();
            //do something
        }
    });

最佳答案

1 - is this the correct use of stopPropagation

如果您希望阻止事件在 DOM 树中向上冒泡,那么可以。

2 - what's the best practice for doing something like this

就个人而言,我更喜欢 jQuery 选择器后跟方法,但这只是一种偏好。最佳做法是您和您的团队一致同意并始终使用的任何风格。

3 - which one of the below method is faster and uses less resources

实际上,两者之间几乎没有区别。

4 - I know I can use hover() but I used bind because I thought it is faster, is my thinking correct

jQuery hover 方法是绑定(bind)到 mouseenter 和 mouseleave 事件的简写,因此使用 hover 会多调用一个函数,但性能上几乎没有差异。

关于javascript - 使用 jquery/javascript 执行以下操作的最佳做​​法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8260019/

相关文章:

javascript - 在 React.js 的列表中保存传入的多个数据

jquery - 如何使用 jQuery 和 CSS 创建 float 按钮?

javascript - 为在线表格制作打印布局

jquery - 在多个文本区域之间移动的一个tinyMCE实例?

javascript - 如何通过 javascript 将 * 更改为斜体?

javascript - Uncaught Error : [$rootScope:infdig]

javascript - Cordova In App Browser 事件未触发 IOS

javascript - 与 pjax 一起使用时取消绑定(bind) jQuery 无限滚动

javascript - 试图找出 jquery 语法

javascript - jquery animate,如果条件执行相反的 Action