Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS鼠标事件在循环中多次激发_Javascript_Angularjs - Fatal编程技术网

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

Javascript AngularJS鼠标事件在循环中多次激发,javascript,angularjs,Javascript,Angularjs,当鼠标悬停li元素时,我试图触发函数setHighlight。在ng repeat循环中设置ng mouseover事件 问题是,当我将鼠标悬停在li元素上时,ng mouseover会被多次触发。触发次数等于迭代次数。以下是我的代码片段: <ul> <li ng-repeat="review in foodReviews" ng-mouseover="setHighlight(review.id)"> <h4>{{review.nam

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

问题是,当我将鼠标悬停在
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>
  • {{review.name} {{review.stars}}}stars --{{review.location}}
    {{review.description}}
    作者{{review.author}

我是否将鼠标悬停事件放错了位置?

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

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

我对angular不太熟悉,但是的,它看起来像是mouseover在loopmouseover事件中冒泡,但mouseenter没有。至于你的说法:“触发次数等于迭代次数”,我认为这是一个误判。