我有以下代码,它们应该切换div的背景和某些p并且它没有,我无法弄清楚原因。你能帮忙吗?
的jQuery
$(document).ready(function(){
$("div.portfolio-img").hover(
function(){
$(this).toggleClass(".portfolio-img-hover");
$(this).find("h5.excerpt-title").toggleClass(".excerpt-title-hover");
$(this).find("p.portfolio-excerpt").toggleClass(".portfolio-excerpt-hover");
}
)
});
HTML
<div class="portfolio-img">
<a href="#single_project"><img src="images/thumbnail.jpg"/></a>
<h5 class="excerpt-title">First Title</h5>
<p class="portfolio-excerpt">Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum</p>
</div>
CSS
h5.excerpt-title{
margin:30px 0px 5px;
transition:background-color 0.5s ease;
}
.excerpt-title-hover{
opacity:1;
color: #ed0b0b;
}
.portfolio-excerpt-hover{
opacity:1;
background:#e2e2e2;
}
.portfolio-img-hover{
opacity:1;
background:#e2e2e2;
border-bottom:2px solid #ed0b0b;
}
.portfolio-img{
width:220px;
display:inline-block;
padding:15px 5px;
margin:0px 5px 10px;
opacity:0.6;
border-bottom:1px solid grey;
transition:background-color 0.5s ease;
background-color:#ffffff;
}
Jsfiddle:http://jsfiddle.net/a12b0u0k/
答案 0 :(得分:0)
$(this).toggleClass("div.portfolio-img-hover");
div.portfolio-img-hover
是一个选择器。你只想要portfolio-img-hover
。
toggleClass
会添加/删除您在()
中放置的内容,并且您希望添加portfolio-img-hover
而不是div.
部分。
答案 1 :(得分:0)
使用toggle类方法时,只应包含类名,如下所示。
您还应将$(this)
存储在变量中。
$(document).ready(function(){
$("div.portfolio-img").hover(function(){
var $this = $(this);
$this.toggleClass("portfolio-img-hover");
$this.find("h5.excerpt-title").toggleClass("excerpt-title-hover");
$this.find("p.portfolio-excerpt").toggleClass("portfolio-excerpt-hover");
})
});
此外,您希望确保“悬停”类样式低于CSS中的默认样式,并且您还应该包含原始选择器。
答案 2 :(得分:0)
将您的jQuery更改为:
$(document).ready(function(){
$("div.portfolio-img").hover(function(){
$(this).toggleClass("portfolio-img-hover");
$(this).find("h5.excerpt-title").toggleClass("excerpt-title-hover");
$(this).find("p.portfolio-excerpt").toggleClass("portfolio-excerpt-hover");
}
);
});
并在您的{c}中的.portfolio-img-hover{}
和portfolio-img{}
上交换位置。
在此处试试:jsFiddle