我有一个使用JQuery的简单悬停的以下JavaScript代码:
$('.product_img_link').hover(function(){
$(this).prev('.hoverProduct').show();
},function(){
$(this).prev('.hoverProduct').hide();
});
(使用类div
查找上一个hoverProduct
,并在悬停时将其显示并在鼠标移出时隐藏它。
如何在没有JQuery的情况下编写此代码段,只使用纯JavaScript?
答案 0 :(得分:5)
这样的事情:
var links = document.querySelectorAll('.product_img_link');
[].forEach.call(links, function(link) {
var prev = link.previousSibling;
link.addEventListener('mouseover', function() {
prev.style.display == 'block';
});
link.addEventListener('mouseout', function() {
prev.style.display == 'none';
});
});
在带有选择器的jQuery prev
中,仅当与选择器匹配时才会获取前一个元素。如果你想在普通的JS中使用相同的行为,你可以像这样测试:
...
var prev = link.previousSibling;
var hasClass = /\bhoverProduct\b/.test(prev.className);
if (hasClass) {
// events
}
...