jquery - angularjs 无法通过 jQuery 找到 "this"?

标签 jquery angularjs events angularjs-ng-click

例如,我有两个按钮

  <button class="item" ng-click="clickFun(this)">ngClick</button>
  <button class="item" onClick="clickFun(this)">jQueryClick</button>

我试图访问两个按钮,它在 jQuery Click 中工作,但 ngClick 失败。我从 ngClick 得到“(空)”。

js代码:

var oneApp = angular.module('oneApp', [])
.controller('oneCtrl', function($scope) {
  console.log('running');
  $scope.clickFun = function(obj){
     console.log($(obj).text());
    //console.log($(obj).next('.next'));
    //console.log($(obj).next('.next').text());
  }
});

function clickFun(obj){
  console.log($(obj).text());
}

这是我的演示:http://codepen.io/dotku/pen/VjwEvR

最佳答案

您应该在调用 ng-click 函数时传递 $event 对象,该函数基本上会将当前事件对象传递给 clickFun ,然后执行 event.target,它将指示 Controller 内的当前上下文(this)。

标记

<button class="item" ng-click="clickFun($event)">ngClick</button>

代码

$scope.clickFun = function(event){
   console.log($(event.target).text());
}

Working CodePen

Note: Playing with DOM inside controller isn't correct way in Angular

关于jquery - angularjs 无法通过 jQuery 找到 "this"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37522781/

相关文章:

javascript - 寻找在不创建其他 div 的情况下以每 100 速率随机显示 div 的解决方案

javascript - 10+1000不会返回正确的数字Javascript

javascript - JS/jQuery : how many character occurance in textarea

javascript - mongoose mongodb nodejs 的 bodyparser 错误

javascript - Event.target.value 未正确检索值

jquery - JQuery.parseJSON 的无效 JSon 错误

angularjs - 带有 ui-select 和 transinclude 的 Angular 指令

jquery - AngularJS 是否有等效的 jQuery.ajaxSuccess

c# - 在 Windows 7 中捕获控制台退出 C#

events - 在非输入元素上 react onKeyDown/onKeyUp 事件