【发布时间】:2018-04-18 11:40:33
【问题描述】:
我有以下 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);
}
正如预期的那样,这个逻辑可以正常工作——当组件加载时,我会为视图中的每个组件实例记录Clicked...。
但是,只要我将事件从 'load' 更改为 'click',点击 svg 就不会触发任何事件?
知道为什么吗?
更新:
如链接问题中所述,以下 html 也不会触发点击事件:
<div class="center" (click)="onClick()">
<object id="img" (click)="onClick()" data="assets/img/big_layout.svg" #svg></object>
</div>
这是一个废话demo
【问题讨论】:
-
为什么不在
objectdiv 上使用(click)事件? -
@Flow 我之前尝试过,但它没有用...看到这个discussion
-
你是如何尝试使用它的?
-
html:
<object id="img" data="assets/img/big_layout.svg" (click)="clickerFuntion()"></object >ts:clickerFuntion(){console.log('Clicked...');} -
对象“不能”被点击:查看这个答案和 cmets:stackoverflow.com/a/25916723
标签: javascript angular dom svg