ng-mouseover ng-mouseout没有工作

时间:2015-10-26 20:59:49

标签: javascript html css angularjs

下面是我的代码,我试图让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';
        }
    };

1 个答案:

答案 0 :(得分:1)

如果您决定以角度方式执行此操作,则必须通过ng-mouseover调用函数,并且在该函数中,您需要一个选择器,例如JQueryJavascript'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
}