AngularJS鼠标事件在循环中多次触发

时间:2014-08-07 15:44:51

标签: javascript angularjs

我试图在鼠标悬停setHighlight元素时触发函数ling-mouseover事件在ng-repeat循环中设置。

问题是,当我悬停li元素时,ng-mouseover会被多次触发。触发次数等于迭代次数。这是我的代码片段:

<ul>
    <li ng-repeat="review in foodReviews" ng-mouseover="setHighlight(review.id)">
        <h4>{{review.name}}</h4>
        <b>{{review.stars}} Stars</b>
        <i> -- {{review.location}} </i><br />
        <blockquote> {{review.description}} </blockquote>
        <br/> written by {{review.author}}
    </li>
</ul>

我是否将悬停事件放在了错误的位置?

1 个答案:

答案 0 :(得分:8)

鼠标悬停事件发生在元素或任何子元素悬停的任何时候。因此,每当您将鼠标悬停在li内的h4上时,都会触发另一个鼠标悬停事件。您应该使用mouseenter事件。

ng-mouseenter="setHighlight(review.id)"