Как проверить значение идентификатора элемента при наведении мыши на событие? - PullRequest
1 голос
/ 09 марта 2020

Хотите знать, если кто-нибудь может помочь мне понять, как проверить значение идентификатора элемента, при наведении мыши на событие. Я предполагаю, что должен использовать «это».

значение, которое я получаю для идентификатора, "неопределено"

function mouseOver() {
  var e = $(this).attr("ID"); //need help with this bit
  if (e == ("row2012")) {
    alert(e)
  } else {
    alert(e);
  }
}
<table>
    <tr data-ng-repeat="x in Interruptions">
      <td id=row{{x.year}} onmouseover="mouseOver()" onmouseout="mouseOut()">
          {{x.year}}
      </td>
      <td>{{x.totalEvents}}</td>
      <td>{{x.customers}}</td>
      <td>{{x.avgDuration}}</td>
</table>

Ответы [ 4 ]

5 голосов
/ 09 марта 2020

Вы можете передать текущий элемент dom напрямую, передав this внутри onmouseover & onmouseout функции вроде:

<td id=row{{x.year}} onmouseover="mouseOver(this)" onmouseout="mouseOut(this)">{{x.year}}</td>

и затем получить доступ к элементу id в js коде, например :

function mouseOver(elem) {
  var e = elem.id;
  if (e == "row2012") {
    alert(e)
  } else {
    alert(e);
  }
}
4 голосов
/ 09 марта 2020

Используйте ng-mouseenter и ng-mouseleave и передайте переменную x обоим:

<td id=row{{x.year}} ng-mouseenter ="mouseOver(x)" ng-mouseleave="mouseOut(x)">{{x.year}}</td>

Затем в функциях вы можете просто использовать:

$scope.mouseOver = function(item) {
  var id = `row${item.year}`
  ...
}
0 голосов
/ 09 марта 2020

Использование директив ng-mouse*

В рамках AngularJS следует избегать использования атрибута onmouseover. Вместо этого используйте директиву ng-mouseover. Он интегрирован с каркасом AngularJS и оценивает выражения в контексте выполнения AngularJS. Только операции, которые применяются в контексте выполнения AngularJS, получат выгоду от AngularJS привязки данных, обработки исключений, отслеживания свойств и т. Д. c.

Для получения дополнительной информации см.


ng-mouseover со ng-repeat специальными переменными

Директива ng-repeat создает дочерние области со специальными переменными, установленными директивой. Одним из них является $index.

<div ng-repeat="x in arr">
   <p ng-mouseover="mouseOver($index)>{{x.year}}</p>
</div>
$scope.mouseOver = function(idx) {
    var x = arr[idx];
    console.log(x.year);
};

Для получения дополнительной информации см.


ng-mouseover с $event

Директивы типа ngMouseover и ngFocus предоставляют объект $event в рамках этого выражение. Объект является экземпляром jQuery объекта события при наличии jQuery или аналогичного объекта jqLite.

<div id="fred" ng-mouseover="mouseOver($event)">
   Ipsum lorem
</div>
$scope.mouseOver = function(ev) {
    console.log(ev.target.id);
};

Для получения дополнительной информации см.

0 голосов
/ 09 марта 2020

Вам просто нужно использовать следующую информацию.

В вашем HTML передать это в функцию mouseOver (this)

<td id="1" onmouseover="mouseOver(this)" onmouseout="mouseOut(this)">2019</td>

Теперь в функции используйте следующее

function mouseOver(ele) {
  var eleId = $(ele).attr("Id"); //need help with this bit
  if (eleId == "yourid") {
    alert(eleId)
  } else {
    alert(eleId);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...