ng-repeat и событие mouseover
Это похоже на проблему объема, но я не уверен. Моя цель - выделить одну строку в таблице. это означает, что любая ранее выделенная строка возвращается в невыделенное состояние. строки создаются с помощью директивы ng-repeat, например:
<div id="myFedContents" style="height:320px" ng-controller="Controller2" class="scroller">
<table border="0" class="span12 table table-condensed" style="margin-left:0px" id="tblData">
<thead>
<tr><th>Year</th><th>Name</th><th>Useful Flag</th></tr>
</thead>
<tbody id="allRows">
<tr ng-repeat="item in itemlist | filter:thisText" ng-style="myStyle"> <td class="span1" valign="top"><a tabindex="-1" href="#">{{item.year}}</a></td>
<td id="{{item.id}}"> <a tabindex="-1" href="#" ng-click="myStyle={'background-color':'#cccccc'};">{{item.name}}</a>
</td> <td>
<a href="#" class="btn btn-small btn-link">{{item.usefulflag}</a>
</td> </tr>
</tbody>
</table>
</div>
у меня есть код в файле.js, который выглядит так:
$("tr").mouseenter(function(){
alert("mouseenter");
});
строка в заголовке таблицы реагирует с предупреждением, но нет реакции от строк, созданных с помощью ng-repeat. как я могу исправить?
1 ответ
На самом деле вы можете достичь этого эффекта, используя ng-класс в сочетании с ng-mouseenter и ng-mouseleave, вот так:
<div id="myFedContents" style="height:320px" ng-controller="Controller2" class="scroller">
<table border="0" class="span12 table table-condensed" style="margin-left:0px" id="tblData">
<thead>
<tr>
<th>Year</th>
<th>Name</th>
<th>Useful Flag</th>
</tr>
</thead>
<tbody id="allRows">
<tr ng-repeat="item in itemlist | filter:thisText" ng-style="myStyle" ng-class="highlightclass" ng-mouseenter="highlightclass='highlight'" ng-mouseleave="highlightclass=''">
<td class="span1" valign="top"><a tabindex="-1" href="#">{{item.year}}</a>
</td>
<td id="{{item.id}}"> <a tabindex="-1" href="#" ng-click="myStyle={'background-color':'#cccccc'};">{{item.name}}</a>
</td>
<td>
<a href="#" class="btn btn-small btn-link">{{item.usefulflag}</a>
</td>
</tr>
</tbody>
</table>
</div>
В этом случае вам не нужен синтаксис jquery. Если вы еще этого не сделали, вам также следует прочитать /questions/42141840/dumaete-v-angularjs-esli-u-menya-est-fon-jquery/42141845#42141845.