【发布时间】:2019-08-03 17:22:54
【问题描述】:
我刚刚在 IE11 上测试了我的应用程序,但我无法弄清楚为什么这不起作用,
我有这段代码,它包含三个元素 .hamburger-small、.hamburger-big 和 .menu
<div [class.shown]="!chatbarFullscreen">
<div [class.disabled]="router.url.includes('home')">
<img (click)="closeChatbar(true, router.url.includes('home') ? true : false)" *ngIf="chatbarFullscreen" src="../assets/images/whole-app/arrow-right.svg" alt="Arrow Right">
<img (click)="closeChatbar(false, router.url.includes('home') ? true : false)" *ngIf="!chatbarFullscreen" src="../assets/images/whole-app/arrow-left.svg" alt="Arrow Left">
</div>
<img (click)="goHome()" src="../assets/images/chatbar/header-logo.svg" alt="header logo">
<div id="small" (click)="hamburgerClick()" class="hamburger hamburger--slider hamburger-small">
<div class="hamburger-box">
<div class="hamburger-inner"></div>
</div>
</div>
</div>
<div id="big" (click)="hamburgerClick()" class="hamburger hamburger--slider hamburger-big">
<div class="hamburger-box">
<div class="hamburger-inner"></div>
</div>
</div>
<div class="menu">
<p (click)="closeChatbar(false); hamburgerClick();" [routerLink]="['/app/main/home']">Home</p>
</div>
</div>
当你点击它时,它会调用这个函数
hamburgerClick() {
const small = <HTMLElement>document.querySelector('.hamburger-small');
const big = <HTMLElement>document.querySelector('.hamburger-big');
const menu = <HTMLElement>document.querySelector('.menu');
small.classList.toggle('is-active');
big.classList.toggle('is-active');
menu.classList.toggle('show');
}
现在它适用于所有其他浏览器,Chrome、Firefox、Safari 和 Edge,但不适用于 IE 我见过类似的问题,但它似乎应该可以工作?当我第一次单击该按钮时,我也在控制台中收到此错误,但其他任何时候都不会发生此错误
任何帮助都会很棒..
编辑
我已尝试使用@ViewChild(),但它仍然无法正常工作,但 Invalid Calling Object 错误不再发生
@ViewChild('hamburgerBig') hamburgerBig: ElementRef;
@ViewChild('hamburgerSmall') hamburgerSmall: ElementRef;
@ViewChild('menu') menu: ElementRef;
hamburgerClick() {
this.hamburgerBig.nativeElement.classList.toggle('is-active');
this.hamburgerSmall.nativeElement.classList.toggle('is-active');
this.menu.nativeElement.classList.toggle('show');
}
谢谢!!
【问题讨论】:
-
你试过 ViewChild 来查询元素吗?
-
@Chellappan 不确定你的意思是什么?
-
您可以使用 ViewChild 以角度查询元素检查此文档:angular.io/api/core/ViewChild
-
能否请您添加带有 '.hamburger-small' 和 '.menu' 类的 HTML,如果页面上没有定义,这就是问题
标签: javascript angular typescript internet-explorer-11