网站搜索

javascript - 如何在 angular2/angular4 中对通过 querySelector 获取的原生元素的子元素触发点击事件


我尝试了下面的代码,但没有效果。我正在使用 Angular4。如果 handle click 的输入不少于 3,我想触发一个点击事件。

import { Component, OnInit, ElementRef } from '@angular/core';

@Component({
    selector: 'box-frame',
    template: `
            <div>
              <div (click)="handleClick(i)" id="box{{i}}" *ngFor="let i of array"></div>   
            </div>
          `
})
export class BoxFrameComponent implements OnInit {
    array: any = [1, 2, 3, 4, 5, 6];
    constructor(private eleRef: ElementRef) { };
    ngOnInIt() {
    };
    handleClick(n: number) {
        if (n < 3) {
            console.log(n);
        } else {
            let smallBox = this.eleRef.nativeElement.querySelector('#box' + n - 1);
            //this didn't work
            smallBox.dispatchEvent('click');
        }

    };
};

答案#1

smallBox.dispatchEvent(new CustomEvent('click'));