Saya ingin memicu ng-click
elemen saat runtime seperti:
_ele.click();
ATAU
_ele.trigger('click', function());
Bagaimana ini bisa dilakukan?
javascript
jquery
angularjs
angularjs-ng-click
mulla.azzi
sumber
sumber
Jawaban:
Sintaksnya adalah sebagai berikut:
Info lebih lanjut tentang Angular Extend caranya di sini .
Jika Anda menggunakan angular versi lama , Anda harus menggunakan trigger, bukan triggerHandler .
Jika Anda perlu menerapkan propagasi berhenti, Anda dapat menggunakan metode ini sebagai berikut:
sumber
triggerHandler
alih-alihtrigger
EDIT: Tampaknya Anda harus keluar dari siklus $ apply () saat ini. Salah satu cara untuk melakukannya adalah dengan menggunakan $ timeout ():
Lihat biola: http://jsfiddle.net/t34z7/
sumber
$timeout
daripadasetTimeout
, karena$timeout
akan menjalankan$apply
siklus untuk Anda jika perlu. Itu juga membuat kode Anda lebih bisa diuji karena ngMock memberi Anda kendali penuh atas kapan$timeout
dijalankan. docs.angularjs.org/api/ng/service/$timeout$timeout(fn, 0, false);
agar tidak meminta $ apply, bukan?$timeout
adalah layanan dan oleh karena itu perlu disuntikkan ketergantungan sebelum Anda dapat menggunakannya docs.angularjs.org/api/ng/service/$timeoutSolusi berikut ini berfungsi untuk saya:
dari pada :
sumber
$('#element').click()
Untuk berjaga-jaga jika semua orang melihatnya, saya menambahkan jawaban duplikat tambahan dengan baris penting yang tidak akan merusak propagasi acara
sumber
Menggunakan JavaScript lama biasa berhasil untuk saya:
document.querySelector('#elementName').click();
sumber
Solusi terbaik adalah dengan menggunakan:
Karena
angular.element(domElement).triggerHandler('click')
peristiwa klik angularjs triggerHandler ( ) tidak menggelembung dalam hierarki DOM, tetapi peristiwa di atas melakukannya - seperti klik mouse biasa.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
sumber
Anda bisa melakukan seperti
sumber
Sampel sederhana:
HTML
JavaScript
Apa yang dilakukannya adalah mencari tombol
id
dan melakukan tindakan klik. Voila.Sumber: https://techiedan.com/angularjs-how-to-trigger-click/
sumber
Kode ini tidak akan berfungsi (menimbulkan kesalahan saat diklik):
Anda perlu menggunakan querySelector sebagai berikut:
sumber
Sertakan baris berikut dalam metode Anda di sana Anda ingin memicu peristiwa klik
sumber