移动鼠标并保留 .mouseenter 功能

Moving mouse and keep .mouseenter function

这是我第一次用 jQuery 创作东西,所以我真的很兴奋。我做了一件小事,您可以将鼠标悬停在艺术家姓名上并查看可用的音乐会。

真为自己感到骄傲,但我现在希望能够将光标移动到日期(也许稍后我会为它们创建一个 link),但是如果我移动鼠标在大广场外,然后 .mouseleave 激活和 baaam,它不见了。

我应该怎么做?

这是代码(悬停不起作用,我不明白为什么:()

$(document).ready(function () {
    

    $('show').hide();
    $('.alldates').hide();
    
    $('.band').mouseenter(function() {
        $(this).fadeTo('fast',1);
        $(this).next().show(200);
    });
    
    $('.band').mouseleave(function() {
        
        $(this).fadeTo('fast',0.5);
        $(this).next().hide(200);
    });
   
});
body {
    font-family: 'Roboto';
    
}

.container {
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    flex-wrap: wrap;
    
}

ul,li {
    list-style-type: none;
    list-style: none;
}



.band {
    opacity: 0.5;
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    justify-content:center;
    width: 240px;
    height: 240px;
    align-items: center;
    border-radius: 3px;
    box-shadow: 0px 0px 6px rgba(0,0,0,0.2);
    color: white;
}

.band p {
    font-size: 20px;
    font-weight: 500;
}

show {
    font-size: 16px;
}

.alldates {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 120px;
}

.date {
    display: flex;
    justify-content: space-around;
    border: solid 1px #95989A;
    height: 52px;
    align-items: center;
    border-radius: 3px;
    color:#95989A;
}

.band1 {
    background-color: rgba(40,177,227,1);
}

.band2 {
    background-color: rgba(227,40,52,1);
}

.band3 {
    background-color: rgba(227,213,40,1);
}

.band4 {
    background-color: rgba(0,0,0,1);
}

.band5 {
    background-color: rgba(171,40,227,1);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
    
<div class="info">
    <div class="band band1">
    <p>All Time Low</p>
        <show>Show dates</show>
    </div>
    <div class="alldates">
        <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
        </div>
        
        <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
        </div>
    </div>
</div>
    
    <div class="info">
    <div class="band band2">
    <p>Johnny Cash</p>
        <show>Show dates</show>
    </div>
    <div class="alldates">
        <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
        </div>
        
        <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
        </div>
    </div>
</div>
    
    <div class="info">
    <div class="band band3">
    <p>30 Seconds to Mars</p>
        <show>Show dates</show>
    </div>
    <div class="alldates">
        <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
        </div>
        
        <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
        </div>
    </div>
</div>
    
    <div class="info">
    <div class="band band4">
    <p>Never Shout Never</p>
        <show>Show dates</show>
    </div>
    <div class="alldates">
        <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
        </div>
        
        <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
        </div>
    </div>
</div>
    
    <div class="info">
    <div class="band band5">
    <p>Miley Cyrus</p>
        <show>Show dates</show>
    </div>
    <div class="alldates">
        <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
        </div>
        
        <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
        </div>
    </div>
</div>
    

    
    
    
</div>

在此先感谢您!

将选择器更改为 .info,这样 mouseenter 就会在包含两个元素的父元素上触发。然后使用 $.find() 切换您悬停的 .info 的子项的状态。

$(document).ready(function () {
    $('show').hide();
    $('.alldates').hide();
    
    $('.info').mouseenter(function() {
        $(this).find('.band').fadeTo('fast',1);
        $(this).find('.alldates').show(200);
    });
    
    $('.info').mouseleave(function() {
        $(this).find('.band').fadeTo('fast',0.5);
        $(this).find('.alldates').hide(200);
    });
});
body {
    font-family: 'Roboto';
}

.container {
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    flex-wrap: wrap;
}

ul,li {
    list-style-type: none;
    list-style: none;
}

.band {
    opacity: 0.5;
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    justify-content:center;
    width: 240px;
    height: 240px;
    align-items: center;
    border-radius: 3px;
    box-shadow: 0px 0px 6px rgba(0,0,0,0.2);
    color: white;
}

.band p {
    font-size: 20px;
    font-weight: 500;
}

show {
    font-size: 16px;
}

.alldates {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 120px;
}

.date {
    display: flex;
    justify-content: space-around;
    border: solid 1px #95989A;
    height: 52px;
    align-items: center;
    border-radius: 3px;
    color:#95989A;
}

.band1 {background-color: rgba(40,177,227,1);}
.band2 {background-color: rgba(227,40,52,1);}
.band3 {background-color: rgba(227,213,40,1);}
.band4 {background-color: rgba(0,0,0,1);}
.band5 {background-color: rgba(171,40,227,1);}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="container">
  
  <div class="info">
    <div class="band band1">
      <p>All Time Low</p>
      <show>Show dates</show>
    </div>
    
    <div class="alldates">
      <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
      </div>
      <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
      </div>
    </div>
  </div>
  
  <div class="info">
    <div class="band band2">
      <p>Johnny Cash</p>
      <show>Show dates</show>
    </div>
    
    <div class="alldates">
      <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
      </div>
      <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
      </div>
    </div>
  </div>
  
  <div class="info">
    <div class="band band3">
      <p>30 Seconds to Mars</p>
      <show>Show dates</show>
    </div>
    
    <div class="alldates">
      <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
      </div>
      <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
      </div>
    </div>
  </div>
  
  <div class="info">
    <div class="band band4">
      <p>Never Shout Never</p>
      <show>Show dates</show>
    </div>
    
    <div class="alldates">
      <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
      </div>
      <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
      </div>
    </div>
  </div>
  
  <div class="info">
    <div class="band band5">
      <p>Miley Cyrus</p>
      <show>Show dates</show>
    </div>

    <div class="alldates">
      <div class="date">
        <li id="time">30 Oct 2017</li>
        <li id="place">London</li>
      </div>
      <div class="date">
        <li id="time">2 Nov 2017</li>
        <li id="place">Paris</li>
      </div>
    </div>
  </div>
  
</div>