例如,我有两个按钮
<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());
}
最佳答案
您应该在调用 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());
}
Note: Playing with DOM inside controller isn't correct way in Angular
关于jquery - angularjs 无法通过 jQuery 找到 "this"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37522781/