2016-04-16 8 views
0

テーブル行にホバー効果があります。テーブルの中にポップオーバーメニューが表示されます。問題は、テーブル行のホバー効果が(添付された画像のように)トリガーされるポップオーバーメニューの上にカーソルを置いたときです。 質問は、ポップオーバーでマウスを動かしたときに、テーブル行に対してホバー効果を引き起こさないようにする方法です。テーブル内の特定の要素をホバリングするときにテーブル行にホバー効果をトリガーしない方法

Image of the effect

私はまた、以下のマークアップを添付。

<table class="table__table"> 
<tbody> 
    <tr class="table__body__tr"> 
     <td class="table__body__td">Comment</td> 
     <td class="table__body__td"> 
      <button type="button" class="three-dots"></button> 
      <div class="popover__menu is-opened"> 
       <a href="#" class="popover__link">Reply to comment</a> 
       <a href="#" class="popover__link">Delete comment</a> 
      </div> 
     </td> 
    </tr> 
</tbody> 

CSS

.table { 
    &__body { 
     &__tr { 
      transition: background-color .1s; 

      &:hover { 
       background-color: $grey--light; 
      } 
     } 
    } 
} 

.popover { 
    &__menu { 
     position: absolute; 
     left: 0; 
     visibility: hidden; 
     opacity: 0; 
     z-index: -1; 

     width: auto; 

     background-color: white; 

     &.is-opened { 
      z-index: 1; 
      visibility: visible; 
      opacity: 1; 
     } 
    } 
} 
+0

は、あなたがより多くの詳細な説明を供給することができ、さらにあなたを助けるためにここに掲載のjavascriptことができますか?たとえばあなたのCSS? – Ganga

+0

@ganga確かに、私は関連するCSSを使って投稿を更新しました – Starbug

+0

簡単な解決策は、コメントとtdとボタンで余分なクラスを追加することです。その後、単純なロジックを実行できます。 Like aがホバーである場合、何か他のことは何もしません。このソリューションが気に入ったら、私はそれを投稿することができます。 – Ganga

答えて

0

私は考えることができる2つの単純な迅速な方法が

など<tr data-row_id='1'>としてあなたの行にIDを追加してから、ポップアップで同じオーバーを行うことです要素<div data-row_id='1'>を作成し、ポップアップ上に関数を適用して、同じデータ行IDを持つtrをtrに追加するだけで、tr hoverエフェクトを隠すことができます。

https://api.jquery.com/data/

それとも単に親行を見つけ、再びポップアップのホバー上のクラスを適用するには、別のjqueryの関数を記述します。あなたは、あなたのjqueryのコードを投稿した場合、その

https://api.jquery.com/closest/

のために最も近い()メソッドを使用するか、プレーンを使用している場合だけ

+0

ありがとう!私はjavascriptを避けることを望んでいたが、それはこれを達成する唯一の方法であるように見える。 – Starbug

関連する問題