Ich möchte zur ng-click
Laufzeit ein Element auslösen wie:
_ele.click();
ODER
_ele.trigger('click', function());
Wie kann das gemacht werden?
javascript
jquery
angularjs
angularjs-ng-click
mulla.azzi
quelle
quelle
Antworten:
Die Syntax lautet wie folgt:
Weitere Infos zum Angular Extend Weg hier .
Wenn Sie alte Versionen von Angular verwenden , sollten Sie Trigger anstelle von TriggerHandler verwenden .
Wenn Sie die Stop-Propagierung anwenden müssen, können Sie diese Methode wie folgt verwenden:
quelle
triggerHandler
anstelle vontrigger
EDIT: Es scheint, dass Sie aus dem aktuellen $ apply () -Zyklus ausbrechen müssen. Eine Möglichkeit, dies zu tun, ist die Verwendung von $ timeout ():
Siehe Geige: http://jsfiddle.net/t34z7/
quelle
$timeout
eher Angulars als verwendensetTimeout
, da bei Bedarf$timeout
ein$apply
Zyklus für Sie ausgeführt wird. Es macht Ihren Code auch testbarer, da Sie mit ngMock die volle Kontrolle darüber haben, wann$timeout
s ausgeführt werden. docs.angularjs.org/api/ng/service/$timeout$timeout(fn, 0, false);
so sein, dass es $ apply nicht aufruft, nicht wahr?$timeout
ist ein Dienst und muss als solcher in Abhängigkeit injiziert werden, bevor Sie ihn verwenden können. docs.angularjs.org/api/ng/service/$timeoutDiese folgende Lösung funktioniert für mich:
anstatt :
quelle
$('#element').click()
Nur für den Fall, dass es jeder sieht, habe ich eine zusätzliche doppelte Antwort mit einer wichtigen Zeile hinzugefügt, die die Ereignisausbreitung nicht unterbricht
quelle
Die Verwendung von einfachem altem JavaScript hat bei mir funktioniert:
document.querySelector('#elementName').click();
quelle
Die beste Lösung ist:
Weil die AngleJs TriggerHandler (
angular.element(domElement).triggerHandler('click')
) - Klickereignisse nicht in der DOM-Hierarchie aufblasen , sondern wie oben - genau wie ein normaler Mausklick.https://docs.angularjs.org/api/ng/function/angular.element
http://api.jquery.com/triggerhandler/
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
quelle
Sie können gerne tun
quelle
Einfaches Beispiel:
HTML
JavaScript
Dies sucht nach den Schaltflächen
id
und führen Sie eine Klickaktion aus. Voila.Quelle: https://techiedan.com/angularjs-how-to-trigger-click/
quelle
Dieser Code funktioniert nicht (beim Klicken wird ein Fehler ausgegeben):
Sie müssen den querySelector wie folgt verwenden:
quelle
Fügen Sie die folgende Zeile in Ihre Methode ein, in der Sie das Klickereignis auslösen möchten
quelle