【发布时间】:2018-07-30 14:58:32
【问题描述】:
从下面的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);
}
基本上,我想获取触发 keypress 事件的元素。
有没有办法用 jquery 来获取它?
请注意,我在提问之前已经搜索过答案,但似乎没有一个符合我的预期。
【问题讨论】:
-
这就是为什么混合使用 jQuery 和 Angular 不是一个好主意的原因——每次 Angular 重绘 DOM 时,它都会破坏它不知道的 jQuery 事件绑定。而是在 Angular 中处理按键事件。
-
尝试用
$timeout包裹它。它无法获取您的课程,因为它们尚未呈现。 jQuery 不是渲染摘要循环的一部分。 DOM 修改适用于指令,它们使用您可以尝试使用的 JQLite -
我强烈推荐 Angular 解决方案,但 $(document).on('keypress', '.texter', function(){console.log($(this))}) 会起作用跨度>
-
那么如何用角度处理按键事件?