下面是我的代码,我试图让div标签中包含的内容在鼠标诅咒时改变背景颜色,如果其中一个内容的变量以*开头。但它不起作用......
// html
<style>
.normal{background-color: white}
.change{background-color: gainsboro}
</style>
<div ng-mouseover="checkAs(this)" ng-mouseout="this.className='normal'">
......
</div>
// js
$scope.checkAs = function(obj) {
var name = $scope.opportunity.name;
var asterisk = '*';
if(name.startsWith(asterisk)) {
obj.className='change';
} else {
obj.className='normal';
}
};
答案 0 :(得分:1)
如果您决定以角度方式执行此操作,则必须通过ng-mouseover调用函数,并且在该函数中,您需要一个选择器,例如JQuery或Javascript's query selector,然后修改你认为合适的元素。你必须做这样的事情(使用JQuery):
$scope.checkAs = function() {
$("div").hover(function() {
$(this).prop('background-color','gainsboro');
}, function(){
$(this).prop('background-color','white');
});
};
但是,正如PSL建议的那样,checkAs(this)中的“this”将不是DOM元素。 CSS解决方案可能更好:
div :hover{
background-color: gainsboro
}