javascript - ng-mouseover ng-mouseout 不工作

标签 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';
        }
    };

最佳答案

如果您决定以 Angular 执行此操作,则必须通过 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
}

关于javascript - ng-mouseover ng-mouseout 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33355522/

相关文章:

javascript - 模块和 require()

CSS 导航菜单垂直居中 <LI>s

javascript - 主干获取异步超时未生效

javascript - 如何在jQuery代码之外执行JS函数

javascript - Div 不会随着移动设备上的 onclick 事件消失吗?

jquery - 当内容接近溢出:hidden div?边缘时如何使内容缓慢 'fade out'

Jquery 代码在不应该返回 true 时返回

html - CSS - 为什么我的浏览器不能反射(reflect)在服务器上所做的任何更改?

html - 在 A4 大小的 div 中定位页脚

html - DIV 不应用对齐