javascript - 悬停一个 div 并使用 JS 在具有 3 行的表中的同一行内使用相同的类修改另一个 div 的 CSS

标签 javascript jquery html css

我有一个包含 3 行的 HTML 表格。 每行都有一个列圆圈和一个列面板(有时面板列在圆圈之前,有时在圆圈之后)。

    <table>
      <tr>
        <td>
          <div class="circle"></div>
        </td>
        <td>
          <div class="panel-right></div>
        </td>
      </tr>

      <tr>
        <td>
          <div class="panel-left></div>
        </td>
        <td>
          <div class="circle"></div>
        </td>
      </tr>

      <tr>
        <td>
          <div class="circle"></div>
        </td>
        <td>
          <div class="panel-right></div>
        </td>
      </tr>
    </table>

悬停面板时,面板从 10px 开始向左或向右移动。

    table .panel-left:hover,
    table .panel-left:focus {
      margin-right: -10px;
      margin-left: 10px;
    }

    table .panel-right:hover,
    table .panel-right:focus {
      margin-left: -10px;
      margin-right: 10px;
    }

使用 javascript,我想在将鼠标悬停在面板左侧或面板右侧时修改圆圈的 css

    $(document).ready(function() {

      $(".panel-left").mouseover(function(){
        $(".circle").css("border", "5px solid #16a085");
      });

      $(".panel-left").mouseout(function(){
        $(".circle").css("border", "3px solid #cccccc");
      });

      $(".panel-right").mouseover(function(){
        $(".circle").css("border", "5px solid #16a085");
      });

      $(".panel-right").mouseout(function(){
        $(".circle").css("border", "3px solid #cccccc");
      });

    });

这很好用,除了所有的圆都被修改,当它应该只有包含面板的行内的圆被悬停时。

javascript 应该是什么?

最佳答案

这是你想要的吗?

HTML:

<table>
  <tr>
    <td class="circle-td">
      <div class="circle"></div>
    </td>
    <td>
      <div class="panel-right"></div>
    </td>
  </tr>

  <tr>
    <td>
      <div class="panel-left"></div>
    </td>
    <td class="circle-td">
      <div class="circle"></div>
    </td>
  </tr>

  <tr>
    <td class="circle-td">
      <div class="circle"></div>
    </td>
    <td>
      <div class="panel-right"></div>
    </td>
  </tr>
</table>


CSS:

.circle, .panel-right, .panel-left {
   background-color:red;
   width:200px;
   height:200px;
   border-radius:100%;
   border:3px solid #cccccc;
}

.panel-right, .panel-left {
    width:200px;
    height:200px;
    background-color:green;
}

.panel-left:hover,
.panel-left:focus {
  margin-right: -10px;
  margin-left: 10px;
}

.panel-right:hover,
.panel-right:focus {
  margin-left: -10px;
  margin-right: 10px;
}


Javascript

$(document).ready(function() {
    $('.panel-left, .panel-right').mouseover(function() {
        $(this).closest('td')
               .siblings('.circle-td')
               .find('.circle')
               .css('border', '5px solid #16a085');
    }).mouseout(function() {
        $(this).closest('td')
               .siblings('.circle-td')
               .find('.circle')
               .css('border', '5px solid #cccccc')
    });   
});


这是 fiddle

关于javascript - 悬停一个 div 并使用 JS 在具有 3 行的表中的同一行内使用相同的类修改另一个 div 的 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25816812/

相关文章:

javascript - 数字按正确顺序显示按钮

javascript - IBM 使用 Dojo Toolkit 吗?

javascript - 如何覆盖具有类样式定义的元素的样式

javascript - img 嵌入式 SVG 在将其转换为内联 SVG 后不会改变颜色

javascript - 如何重复div类?

html - CSS 在不使用位置 :absolute (make container big enough for all layers) 的情况下创建图层

html - 调整浏览器大小时绝对位置错误

javascript - Google map JS API - 未定义 'point.pageX'

javascript - 无法从对象数组中检索数据?

javascript - 页面在 chrome 和 FF 中不重定向,但在 IE 中重定向