首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >减少多重单元悬停的代码

减少多重单元悬停的代码
EN

Stack Overflow用户
提问于 2016-04-28 12:12:53
回答 4查看 89关注 0票数 1

如何在不更改jQuery标记的情况下减少此代码?我应该使用数据属性吗?但我不知道怎样才能得到这个形象元素。下面是示例:https://jsfiddle.net/y277bavo/2/

代码语言:javascript
复制
$(".tlh-1, .tlb-1").hover(
  function() {
    $(".icon1-hover").css('display', 'block');
  },
  function() {
    $(".icon1-hover").css('display', 'none');
  });
$(".tlh-2, .tlb-2").hover(
  function() {
    $(".icon2-hover").css('display', 'block');
  },
  function() {
    $(".icon2-hover").css('display', 'none');
  });

代码语言:javascript
复制
<div class="row">
  <div class="block">
    <div class="head tlh-1">
      <h4>Lorem ipsum.</h4>
    </div>
    <div class="body tlb-1">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sed, facilis!.</div>
  </div>
  <p class="image-hover"><img class="icon1-hover" src="https://i.stack.imgur.com/F65tu.jpg?s=48&g=1" alt=""></p>
</div>
<div class="row">
  <div class="block">
    <div class="head tlh-2">
      <h4>Lorem ipsum.</h4>
    </div>
    <div class="body tlb-2">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sed, facilis!.</div>
  </div>
  <p class="image-hover"><img class="icon2-hover" src="https://i.stack.imgur.com/F65tu.jpg?s=48&g=1" alt=""></p>
</div>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-04-28 12:45:02

您为什么使用JS作为CSS用途?对于解决方案,您只需要CSS。删除您的JS并添加此CSS。我在你的jsFiddle上测试过它!

代码语言:javascript
复制
.row {
  display: inline-block;
  float: left;
  width: 50%;
}

[class ^= "tlh-"],[class ^= "tlh-"] {
    [class $= "-hover"] {
        display: none;
    }
}

[class ^= "tlh-"]:hover,[class ^= "tlh-"]:hover {
    [class $= "-hover"] {
        display: block;
    }
}
票数 2
EN

Stack Overflow用户

发布于 2016-04-28 12:15:59

可以将DOM元素关系用作

代码语言:javascript
复制
$(".block").hover(function() {
    $(this).closest('.row').find('.image-hover img').show();
},
function() {
    $(this).closest('.row').find('.image-hover img').hide();
});

代码语言:javascript
复制
$(".block").hover(function() {
    $(this).closest('.row').find('.image-hover img').show();
  },
  function() {
    $(this).closest('.row').find('.image-hover img').hide();
  });
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
  <div class="block">
    <div class="head tlh-1">
      <h4>Lorem ipsum.</h4>
    </div>
    <div class="body tlb-1">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sed, facilis!.</div>
  </div>
  <p class="image-hover">
    <img class="icon1-hover" src="https://i.stack.imgur.com/F65tu.jpg?s=48&g=1" alt="">
  </p>
</div>
<div class="row">
  <div class="block">
    <div class="head tlh-2">
      <h4>Lorem ipsum.</h4>
    </div>
    <div class="body tlb-2">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sed, facilis!.</div>
  </div>
  <p class="image-hover">
    <img class="icon2-hover" src="https://i.stack.imgur.com/F65tu.jpg?s=48&g=1" alt="">
  </p>
</div>

票数 2
EN

Stack Overflow用户

发布于 2016-04-28 12:34:12

您可以如下所示更改jQuery。更新小提琴

代码语言:javascript
复制
$(".head").hover(
  function() {
    $(this).parents('.row').find('img').show();
  },
  function() {
    $(this).parents('.row').find('img').hide();
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36914332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档