2016-11-11 3 views
0

ich eine Tabelle mit einer Zelle haben:

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

Wenn die Funktion DeleteRow aufgerufen wird, wird elementToDelete undefined:

enter image description here

Warum ist jQuery (this) nicht zurück <i> Element?

+1

Sie '$ event.currentTarget' /' $ event.target verwenden sollten, wählen 'statt' this' – Satpal

+0

Probieren Sie dies Ich denke, es wird Ihnen helfen, 'ng-click =" DeleteRow (this); ' – dinesh

Antwort

1

Pass $event im ng-Klick 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

gibt es ein Problem mit sign $ wenn ich jQuery und angularJs gleichzeitig benutze? Wird das Zeichen $ von jQuery oder eckig verwendet, wenn es in angularjs controller verwendet wird? – FrenkyB

+0

Dann verwenden Sie jquery (event.target) –

+0

Vielen Dank für Ihre Hilfe. Ich habe das Problem gelöst. – FrenkyB

0

Ich glaube, Sie dieses td binden, indem ng-repeat so während dieser Sie nur das gleiche Objekt im ng-Klick platzieren annehmen:

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

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


    </div> 
</div> 

dann können Sie Ihr aktuelles Ereignis zugreifen leicht

1

Pass $event in Ihrer Funktion

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

Verwendung $event.currentTarget das aktuell ausgewählte Element

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

JS Fiddle

Verwandte Themen