2016-11-11 67 views
0

我有一个细胞的表:

<td> 
<i class="fa fa-trash-o trashIcon ng-scope" 
aria-hidden="true" 
ng-click="DeleteRow(jQuery(this));"></i> 
</td> 

当函数DeleteRow被调用时,elementToDelete未定义:

enter image description here

为什么jQuery(这个)不返回<i>元素?

+1

你应该使用'$ event.currentTarget' /'$ event.target '而不是'这个' – Satpal

+0

试试这个我猜它会帮助你,'ng-click =“DeleteRow(this);' – dinesh

回答

1

$event在NG-点击angularjs

<td><i class="fa fa-trash-o trashIcon ng-scope" 
aria-hidden="true" 
ng-click="DeleteRow($event);"></i> 
</td> 


$scope.DeleteRow = function(event) { 
    console.log($(event.target)); 
    jquery(event.target).remove() 
} 

Demo

+0

是否有问题如果我同时使用jQuery和angularJs,请签名$?如果在angularjs控制器内部使用jQuery或角度符号$吗? – FrenkyB

+0

然后使用jquery(event.target) –

+0

非常感谢您的帮助。我解决了问题。 – FrenkyB

0

我觉得你NG-重复绑定这个TD所以在这一点,你只要将相同的对象在NG-点击:假设:

<div ng-repeat="set_listing in get_listing"> 
    <div class="width_hun"> 

      <p class="item_name" ng-click="DeleteRow(set_listing)"></p> 


    </div> 
</div> 

然后您可以轻松访问您当前的事件

1

$event在功能

<td> 
    <i class="fa fa-trash-o trashIcon ng-scope" 
    aria-hidden="true" ng-click="DeleteRow($event);">Delete 
    </i> 
</td> 

使用$event.currentTarget选择当前选中的元素

$scope.DeleteRow = function($event) { 
    $event.currentTarget.remove(); 
} 

JS Fiddle