我试图在用户.mouseover().featured_products .featured_products时使用它,而.button会将CSS效果应用于所选容器。我遇到的问题是它改变了.feature_products容器的.css。我希望只改变那个正在使用的那个.mouseover()。我尝试使用$(this),但我没有正确理解它。
// app/templates/components/page-r.hbs
<div class="pager-container">
{{#each range as |page|}}
{{page-button page=page currentPage=currentPage}}
{{/each}}
</div>
// app/templates/components/page-button.hbs
<button type="button" disabled={{isCurrentPage}}>{{page}}</button>
// app/components/page-r.js
import Ember from 'ember';
const { computed } = Ember;
const PageR = Ember.Component.extend({
settings: computed('params.[]', function() {
return this.get('params')[0];
}),
range: [4,5,6],
currentPage: 1
});
PageR.reopenClass({
positionalParams: 'settings'
});
export default PageR;
// app/components/page-button.js
import Ember from "ember";
const { computed } = Ember;
export default Ember.Component.extend({
tagName: 'span',
isCurrentPage: computed('currentPage', 'page', function() {
return this.get('currentPage') === this.get('page');
}),
});
这是我的Demo
答案 0 :(得分:3)
您可以使用选择器中的第二个参数来表示父级,例如:
$(".fp_button", this).css("background-color", "#00addc");
请在此处查看:http://jsfiddle.net/4417zugn/31/
您还可以执行以下操作:
$(this).find(".fp_button")...
等。有很多方法。
我建议的一件事是更改类名而不是修改单个CSS规则,例如:http://jsfiddle.net/4417zugn/33/
最后,只使用CSS就可以了,例如:http://jsfiddle.net/4417zugn/35/
答案 1 :(得分:1)
使用:hover选择器不需要使用jQuery来改变你可以在CSS本身中使用的CSS。然后,您可以使用jQuery切换'fp_hover'类。
$('.featured_products').hover(function(){
$(this).toggleClass('fp_hover')
})
答案 2 :(得分:0)
$(".fp_button")
对于两个div都很常见;所以
而不是写作:
$(".fp_button").css("background-color", "white");
写:
$(this).find('.fp_button').css("color", "#FFFFFF");
因此,您的代码变为
$(".featured_products").mouseover(function(){
$this = $(this);
$this.find('.fp_button').css({"background-color":"#00addc", "color":"#FFFFFF"});
$this.addClass("fp_hover");
});
$(".featured_products").mouseleave(function(){
$this.find('.fp_button').css({"background-color":"white", "color":"#000000"});
$this.removeClass("fp_hover");
});
答案 3 :(得分:0)
你所描述的内容可以在没有jQuery的情况下完成。但是,如果你想使用jQuery,你可以简单地在产品元素上切换一个类。
$('.featured_products').on({
mouseenter: function() {
$(this).toggleClass('fp_hover');
},
mouseleave: function() {
$(this).toggleClass('fp_hover');
}
}, '.featured_product');
http://jsfiddle.net/bradlilley/uwxsr4hu
您也可以在没有jQuery的情况下通过简单地在您的css中添加以下悬停状态来执行上述操作。
.featured_product:hover .fp_button {
background: #f00;
color: #000;
}
https://jsfiddle.net/bradlilley/9mwxo9o2/6/
修改:您还应该避免使用鼠标悬停并使用鼠标中心。