在基本javascript中悬停和切换

在基本javascript中悬停和切换,javascript,hover,toggle,Javascript,Hover,Toggle,对于使用JQuery的简单悬停,我有以下JavaScript代码: $('.product_img_link').hover(function(){ $(this).prev('.hoverProduct').show(); },function(){ $(this).prev('.hoverProduct').hide(); }); (使用类hoverProduct查找上一个div,并在悬停时显示它,在鼠标悬停时隐藏它) 如果没有JQuery,我怎么能只使用普通JavaScript编

对于使用JQuery的简单悬停,我有以下JavaScript代码:

$('.product_img_link').hover(function(){
  $(this).prev('.hoverProduct').show();
},function(){
  $(this).prev('.hoverProduct').hide();
});
(使用类
hoverProduct
查找上一个
div
,并在悬停时显示它,在鼠标悬停时隐藏它)

如果没有JQuery,我怎么能只使用普通JavaScript编写这个代码段呢?

类似这样的内容:

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';
  });
});
...
var prev = link.previousSibling;
var hasClass = /\bhoverProduct\b/.test(prev.className);

if (hasClass) {
  // events
}
...
在带有选择器的jQuery
prev
中,仅当前一个元素与选择器匹配时,才获取前一个元素。如果您希望在普通JS中实现相同的行为,可以进行如下测试:

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';
  });
});
...
var prev = link.previousSibling;
var hasClass = /\bhoverProduct\b/.test(prev.className);

if (hasClass) {
  // events
}
...
大概是这样的:

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';
  });
});
...
var prev = link.previousSibling;
var hasClass = /\bhoverProduct\b/.test(prev.className);

if (hasClass) {
  // events
}
...
在带有选择器的jQuery
prev
中,仅当前一个元素与选择器匹配时,才获取前一个元素。如果您希望在普通JS中实现相同的行为,可以进行如下测试:

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';
  });
});
...
var prev = link.previousSibling;
var hasClass = /\bhoverProduct\b/.test(prev.className);

if (hasClass) {
  // events
}
...

对不起,你的问题是什么?我想他想在没有jQueryYes Arun的情况下将其转换为基本javascript。我想在没有jQuery的情况下用basicjavascript转换这段代码。对不起,你的问题是什么?我想他想在没有jQueryYes-Arun的情况下把这段代码转换成basicjavascript。我想在不使用jQuery的情况下用基本javascript转换这段代码。