wa-hotspots
& wa-tooltips
。ng-mouseover
wa-hotspots
wa-hotspot
wa-tooltip
{$ 1}},ng-class:on
ng-style="tooltipCoords"
wa-hotspots
和wa-tooltips
page.hotspots
通过匹配索引。ng-repeat
& wa-hotspots
共享同一个集合ng-style
,因此他们通过wa-tooltips
问题:
当您将鼠标悬停在wa-tooltips
上时,会将wa-hotspots
位置设置为<ul id="wa-page-{{page.pageindex}}" class="wa-page-inner" ng-mouseleave="pageLeave()">
<li wa-hotspots
<map name="wa-page-hotspot-{{page.pageindex}}">
<area ng-repeat="hotspot in page.hotspots"
class="page-hotspot"
shape="{{hotspot.areashape}}"
coords="{{hotspot.coordinatetag_scaled}}"
ng-mouseover="showTooltip($index, hotspot.coordinatetag_scaled)"
ng-mouseout="hideTooltip()">
</map>
</li>
<li class="tooltip-wrapper">
<ul class="tooltip">
<li wa-tooltips
ng-repeat="hotspot in page.hotspots"
ng-class="{on: hovered.index == $index}"
ng-mouseover="hovered.active == true"
ng-mouseout="hovered.active == false"
ng-style="tooltipCoords" hotspot="hotspot">
</li>
</ul>
</li>
</ul>
中的所有元素。我只想要它设置正确的匹配索引。由于可视性是由ng-class控制的,这并不重要,但它似乎是可以避免的额外开销。
因此:
问题: 如何在{{1}}的鼠标悬停时确保我的ng样式没有样式化{{1}}?但是,只设置与适当的共享索引匹配的工具提示?
{{1}}
工具提示:
答案 0 :(得分:3)
你需要按照你的情况制作每个项目 - hotspot.tooltipCoords然后按索引设置该变量。 你可以在表达式函数内部进行检查。
继承人fiddle
<div ng-controller="MyCtrl">
<div ng-repeat="item in items" ng-style="isChecked($index)">
name: {{item.name}}, {{item.title}}
<input type="checkbox" ng-model="item.checked" />
</div>
</div>
...
$scope.isChecked = function($index){
var color = $scope.items[$index].checked ? 'red' : 'blue';
return {color:color};
}
答案 1 :(得分:1)
而不是
ng-mouseover="hovered.active == true"
ng-mouseout="hovered.active == false"
使用
ng-mouseover="hotspot.class== 'active'"
ng-mouseout="hotspot.class== ''"
之后你可以在ng-class中使用hotspot.class,即:
ng-class="hotspot.class"
请参阅下面的演示:
var app = angular.module('app', []);
app.controller('homeCtrl', function($scope) {
$scope.items = [{
id: 1
}, {
id: 2
}, {
id: 3
}, {
id: 4
}]
});
&#13;
.red {
background-color: yellow;
}
p {
background-color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="homeCtrl">
<p ng-repeat="i in items" ng-mouseover="i.class='red'" ng-class="i.class" ng-mouseout="i.class = ''">{{i.id}}</p>
</div>
</div>
&#13;
答案 2 :(得分:-2)
使用以下
<div class="col-md-4 col-xs-12 col-lg-4" ng-repeat="obj in items">
<button type="button" class="btn btn-sm pull-right" ng-class="obj.class" ng-click="obj.class='test'" >
写一个新课程&#34; test&#34;。您可以在ngmouseover