gpt4 book ai didi

javascript - 点击事件不会在点击时触发?

转载 作者:行者123 更新时间:2023-12-03 03:06:45 26 4
gpt4 key购买 nike

我有以下 html(我的 Angular 5 组件中的模板):

<div class="center">
<object id="img" data="assets/img/big_layout.svg" #svg></object>
</div>

在我的组件中我有这个:

  @ViewChild('svg') svg: ElementRef;

ngAfterViewInit() {
this.svg.nativeElement.addEventListener('load', () => { // wait for the svg to load
console.log('Clicked...')
}, false);
}

正如预期的那样,这个逻辑工作正常 - 当组件加载时,我会为 View 中组件的每个实例记录 Clicked...

但是,一旦我将事件从 'load' 更改为 'click',单击 svg 不会触发任何事件?

知道为什么吗?

更新:

如链接问题中所述,以下 html 也不会触发点击事件:

<div class="center" (click)="onClick()">
<object id="img" (click)="onClick()" data="assets/img/big_layout.svg" #svg></object>
</div>

这是一个 plunk demo

最佳答案

奇怪的是,它不适用于您的项目,可能是由于新的 Angular 5 版本所致。

您可以通过直接在模板上绑定(bind)(click)事件来实现您想要的:

<div class="center">
<object id="img" data="assets/img/big_layout.svg" (click)="onClick()"></object>
</div>

并通过在组件文件中添加方法:

onClick() {
console.log('Clicked');
}

编辑:对象标签就像 iframe,出于安全目的无法访问它们!

关于javascript - 点击事件不会在点击时触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47134750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com