jQuery在ng-repeat中找不到特定元素

时间:2018-07-30 14:58:32

标签: jquery html angularjs

从以下html代码开始

<div ng-repeat="item in list">
    <input type="text" class="texter">
</div>

我使用jquery在列出的任何输入上监听按键。

$('.texter').keypress(function(e){
    console.log(this);
}

但是什么也没发生。即使

$('input').keypress(function(e){
    console.log(this);
}

基本上,我想获取触发按键事件的元素。

是否可以通过jquery来获取它?

请注意,在问之前我已经搜索了答案,但似乎没有一个能满足我的期望。

1 个答案:

答案 0 :(得分:1)

为什么要使用jQuery绑定事件侦听器?您可以通过在ng-keypress内的输入中添加ng-repeat来正确地使用Angular做到这一点

角度

HTML

<div ng-repeat="item in list">
  <input type="text" class="texter" ng-keypress="keypress($event)">
</div>

JS

angular
  .module("myApp", [])
  .controller('myController', ['$scope', function($scope) {

    $scope.list = [1,2,3];

    $scope.keypress = function(event){
      console.log(event);
    }
  }]);

DEMO

如果您坚持使用jQuery处理事件绑定,则应该使用$(document).on('keypress', ...)

$(document).on('keypress', '.texter', function(e){
  console.log(e);
});