所以我只是想为悬停添加一些功能。下面的代码做了同样的事情,除了带有 for 循环的那个我将目标存储在一个数组中。我实际上有几个问题。
- 这是 stopPropagation 的正确用法吗?
- 执行此类操作的最佳做法是什么?
- 以下哪一种方法速度更快且使用的资源更少?
- 我知道我可以使用 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/