Ich habe Eingabe-Suche und Tabelle, die automatisch generiert, wenn ich die Eingabe ändere.Zugriff auf das angeklickte Element nicht möglich
<div class="search">
<form action="" method="post" class="searchform" >
<input type="search" name="" placeholder="Search" class="inputsearchform" ng-model="search"/>
<input type="submit" name="" value="" class="submitsearchform" />
</form>
</div>
<div class="songlist">
<table id="songlistTableR" ng-app='test_table' ng-controller='main_control'>
<tr><th>Name</th><th>Link</th></tr>
<tr ng-repeat="data in loaded | filter:search">
<td><i class="fa fa-plus"></i>{{data.song_name}}</td>
<td><a href="{{data.link}}" target='_blank'>Youtube</a></td>
</tr>
</table>
</div>
JS Skript für Daten in der Tabelle zu erzeugen ist:
var app = angular.module('test_table', []);
var n = [];
app.controller('main_control',function($scope,$http, $rootScope){
load();
function load(){
$http.get("http://localhost:7001/load").success(function(data){
$rootScope.loaded=data;
n = data;
});
}
});
ich auch Code haben, das Tabelle zeigt, wann input.value = 0
$('.inputsearchform').bind('input', function() {
if($(this).val() == 0){
songlistTableR.style.visibility = 'hidden';
}
else{
songlistTableR.style.visibility = 'visible';
}
});
Alles gut funktioniert, aber Ich kann nicht auf das Element zugreifen, wenn darauf geklickt wird. Die einzigen zwei Möglichkeiten, die arbeiten sind $(".fa.fa-plus").click(function(){});
in bind
Ereignis oder erstellen Funktion außerhalb window.onload
, die funktionieren, wenn ich in HTML-Datei onclick für Element einfügen.
Erste Methode ist schlecht, denn wenn ich die Eingabe mehr als einmal ändere, klicken Sie auf Funktion funktioniert jedes Mal, auch wenn ich nicht auf dieses Element klicken.
Zweite Methode ist auch nicht geeignet, weil ich index
des geklickten Elements wissen muss.
Kann mir jemand eine Lösung empfehlen?
UPD Sorry für die Unterbrechung, löste ich dieses Problem. Ich habe die Version Jquery
auf 2.2.2 geändert und jetzt funktioniert es. Danke fürs Helfen!
Sie sollten wirklich Umgang mit Klickereignissen wit h eckig, wenn Sie eckig verwenden. In vielen Fällen führt die Verwendung von jQuery zur Behandlung von Ereignissen, die ebenfalls angular behandelt werden, zu Problemen. Ja, es gibt Ausnahmen, und es kann definitiv gemacht werden, aber in diesem Fall sollten Sie definitiv die Lösung von @ Vanojx1 verwenden. – mhodges