css类仅适用于一个元素

时间:2015-09-09 11:21:32

标签: javascript jquery html css angularjs

每2秒我的js函数被触发,在某些逻辑之后我想在页面上的html元素上应用css类。

   var myCounter= 0;        

    $interval(function () {            
        myCounter++;
        DoSomething();
        $('#myElem_' + myCounter).addClass('myClass');
    }, 2000);

    function DoSomething() {
        if (myCounter<= 35) {                
            if (myCounter == 0) {
                $scope.myIndex= 1;
            } else {
                $scope.myIndex= myCounter;                   
            }

        } else {
            // not implemented
        }
    }

在html页面上css类仅在第一次应用。计数器有效但css只能应用于第一个元素。

在html页面上,html元素上有唯一的id号,比如

<div id="myElem_1"></div>
<div id="myElem_2"></div>

1 个答案:

答案 0 :(得分:0)

在所有更改后,您需要在函数中使用$scope.$apply();

function DoSomething() {
    if (myCounter<= 35) {                
        if (myCounter == 0) {
            $scope.myIndex= 1;
        } else {
            $scope.myIndex= myCounter;                   
        }

    } else {
        // not implemented
    }

    $scope.$apply(); // <---put this one here.

}

我猜你正在改变/更新上面函数中的一些范围变量,所以你需要告诉angular检查更改并更新范围。