在基本的javascript中悬停和切换

时间:2013-02-27 08:34:02

标签: javascript hover toggle

我有一个使用JQuery的简单悬停的以下JavaScript代码:

$('.product_img_link').hover(function(){
  $(this).prev('.hoverProduct').show();
},function(){
  $(this).prev('.hoverProduct').hide();
});

(使用类div查找上一个hoverProduct,并在悬停时将其显示并在鼠标移出时隐藏它。

如何在没有JQuery的情况下编写此代码段,只使用纯JavaScript?

1 个答案:

答案 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
}
...