javascript - 将 jQuery 代码转换为 CSS 或 LESS

标签 javascript jquery html css less

是否可以将此代码从 jQuery 转换为 CSS 或 LESS?

$('li').mouseover(function() {
    if ($('li ul li ul li:hover').length) {
        $('li ul li ul li:hover').css('background', 'red');
    } else if ($('li ul li:hover').length) {
        $('li ul li:hover').css('background', 'red');
    } else {
        $('li:hover').css('background', 'red');
    }
});
$('li').mouseout(function() {
    $(this).css('background', 'transparent');
});

此代码用于悬停列表中的元素,如下所示:JSFIDDLE

最佳答案

如果我理解正确,您需要一个纯 CSS 解决方案(没有 jQuery)。

嗯,这是可能的。

问题是在 li:hover 上使用背景也会给 child 上色。但是当悬停 child 时,悬停也会影响 parent li .

因此您需要将文本包装在 <span> 中:

li span {
  display: block;
}
li span:hover,
li span:hover~ul {
  background: red;
}
<ul>
  <li><span>Item 1</span></li>
  <li>
    <span>Group</span>
    <ul>
      <li><span>Item 2</span>
        <ul>
          <li><span>Item 2.1</span></li>
          <li><span>Item 2.2</span></li>
        </ul>
      </li>
      <li><span>Item 3</span></li>
    </ul>
  </li>
</ul>

关于javascript - 将 jQuery 代码转换为 CSS 或 LESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31559324/

相关文章:

javascript - 如何在 React js 中更改 mapbox-gl 的中心纬度和经度?

javascript - jQuery 不删除绝对定位的 div?

php - 我们如何在 PHP 中为 Jquery-ui 对话框窗口创建自定义样式?

javascript - HTML 表中删除的行保留在 ReactDOM 中

javascript - Kinetic.js : Get MinX, 旋转 Kinetic.Label 的 MaxX、MinY 和 MaxY

javascript - 获取 jquery 数组中元素的文本

javascript - 如何将 JQuery Contains 与 id 选择器一起使用

javascript - HTML5历史禁用前进按钮

jquery - 如何动态更改照片的 z-index?

javascript - 音频无法在移动设备上播放,但适用于桌面浏览器