首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Angular: event.srcElement没有指向预期的元素

Angular是一种流行的前端开发框架,用于构建单页应用程序。它采用TypeScript编写,并由Google维护和支持。Angular具有丰富的功能和强大的工具集,可以帮助开发人员构建高性能、可扩展和可维护的Web应用程序。

对于你提到的问题,event.srcElement是一个DOM事件属性,用于获取触发事件的元素。然而,在Angular中,推荐使用event.target代替event.srcElement来获取触发事件的元素。

event.target是DOM事件属性,指向触发事件的元素。它是跨浏览器兼容的,可以在各种现代浏览器中正常工作。

在Angular中,可以通过以下方式来获取触发事件的元素:

  1. 在HTML模板中,可以使用事件绑定语法来调用组件中的方法,并传递$event参数来获取事件对象。例如:
代码语言:html
复制
<button (click)="handleClick($event)">点击我</button>

在组件中,可以通过$event.target来获取触发事件的元素:

代码语言:typescript
复制
handleClick(event: any) {
  const targetElement = event.target;
  // 处理触发事件的元素
}
  1. 在组件中,可以使用@ViewChild装饰器来获取DOM元素的引用,并在需要时访问其属性。例如:
代码语言:html
复制
<button #myButton>点击我</button>
代码语言:typescript
复制
import { Component, ViewChild, ElementRef } from '@angular/core';

@Component({
  selector: 'app-my-component',
  template: `
    <button #myButton>点击我</button>
  `
})
export class MyComponent {
  @ViewChild('myButton') myButton!: ElementRef;

  ngAfterViewInit() {
    const targetElement = this.myButton.nativeElement;
    // 处理触发事件的元素
  }
}

需要注意的是,event.srcElement在某些浏览器中可能不被支持,因此在Angular中推荐使用event.target来获取触发事件的元素。

关于Angular的更多信息和学习资源,你可以参考腾讯云的Angular产品介绍页面:Angular产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C++指向数组元素指针

C++指向数组元素指针 在C++中,一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应地址;指针变量既然可以指向变量,也可以指向数组元素,所谓数组元素指针就是数组元素地址...如果指针变量p已指向数组中一个元素,则p+1指向同一数组中下一个元素,p+i和array+i就是array[i]地址,或者说,它们指向array数组第i个元素。...对array[i]求解过程是: 先按array+i×d计算数组元素地址,然后找出此地址所指向单元中值。...其中array是数组名,p是指向数组元素指针变量。 经典案例:C++输出数组中10个元素。...C++指向数组元素指针 用指针输出数组中10个数 更多案例可以go公众号:C语言入门到精通

2.1K2319

多进程并发为什么没有达到预期性能

我们看到,由于 GIL 锁存在,python 中线程效率并不高,也不能利用多核 CPU 特性,与多线程并发相比,多进程并发显得更有优势。...可是经过我们测试,多进程并发执行效率也没有我们想象中那么高,那么,究竟是什么原因造成了多进程并发性能下降呢? 2....进程与线程区别 进程是一个程序一次执行,而线程则是 CPU 最小调度单位。...上下文切换 CPU 每个核心在同一时间只能执行一条指令,多进程并发执行依赖于 CPU 对任务反复切换,任务执行单位是 CPU “时间片”,在两个时间片之间,CPU 就必须进行上下文切换,来加载进程运行所必须数据...,包括寄存器数据、打开文件描述符、进程地址空间等,然后载入接下来需要执行进程上述信息。

52520
  • RxJava 容易忽视细节: subscribeOn() 方法没有按照预期地运行

    此时 RxJava 没有改变线程,是因为 subscribeOn() 方法已经完成了工作,订阅已经在其他线程上进行了。这时,没有理由 RxJava 会再次更改线程。所以,会看到上述运行结果。 二....因为 Hot Observable 是在订阅之前就创建了 Observable,所以使用 just 操作符后,getRandomInteger() 函数调用并没有受到 subscribeOn() 影响...Current Thread Name:main, value: 3 - I want this happen on a computation thread 从执行结果上 subscribeOn() 并没有起作用...如果 BehaviorSubject 被订阅之前没有发送任何数据,则会发送一个默认数据。...当我们 subject 发射第一个值时,第一个观察者已经被订阅。由于订阅代码在我们调用 onNext() 时已经完成,因此订阅调度程序没有任何作用。

    1.8K10

    一日一技:Selenium 如何获取鼠标指向元素

    有一个同学在Gne群里面咨询如何通过Selenium获取当前鼠标指向元素,在我讲了方法以后,他过了两天又来问: 那么,我今天就来写一篇文章,具体说说应该怎么操作。...我们先来第一步,不考虑Selenium,只使用JavaScript,如何获取当前鼠标指向元素呢? 我们首先需要知道在JavaScript中一个事件句柄,叫做window.onmousemove。...element) { return // 当前位置没有元素 } return element } 那么,如何把这个参数返回给Selenium呢?...但是,一个元素区域是很大,在一个元素内部移动鼠标,其实根本没有必要更新window.hovered_element。...但实际上,我们并不会对网页上所有的内容都感兴趣,我们只会对特定内容感兴趣。因此,获取当前鼠标所在位置元素,其实是一个伪需求,它根本没有什么实际上用处,因为噪声太大了,无用数据太多了!

    1.9K20

    Angular动态创建元素一些坑

    在html文件中 用ngFor 动态生成子html 元素自定义属性,比如data-title ,发现angular报错,不让用 。解决办法:采用 attr.自定义属性名 即可 ?...实现拖拽功能 需要复制html元素 append到其他元素时 希望将原始html标签上 (click) 事件属性也一起复制,发现angular会自动将(click) 删除 ,无奈需要在ts里动态添加click...或者直接对对象onclick属性 绑定方法 ,此种做法可以使用父级this上方法 ?...angular在页面渲染时会为html元素自动增加属性 _ngcontent-c[数字] ,angular某些class样式和这类属性密切耦合影响页面样式 ;而在ts代码中动态复制html标签时该属性还没有生成...,动态复制html元素不会被再次渲染生成 _ngcontent-c[数字] 属性,因此复制html与原始html样式无法一致 。

    2.5K20

    c语言之指向二维数组元素指针变量

    首先我们需要明确是:二维数组在内存中是连续,比如一个二维数组int a[2][3]={1,2,3,4,5,6},可以视作是两个一维数组构成,即int a0[3] ={1,2,3},int a1[3...] = {4,5,6},我们知道,一维数组在内存中是连续一块内存,并且数组名a0,a1代表就是该数组首元素地址,而正因为二维数组内存中地址也是连续,所以a1元素地址就为a0数组首元素地址...+a0中元素个数,因此,我们就可以通过让指针不断+1来访问其中每一个元素,不用再考虑行与列限制。...(2)传入printArr中是二维数组首元素地址,也就是第一个一维数组元素地址,也就是其名字。...(3)遍历时让指针p一直向后移动到二维数组末尾,可以看做将二维数组展开成一维数组,再计算移动次数。 (4)当访问到位置是列整数倍时,进行换行,方便显示。

    1.3K20

    一日一技:在网页上如何获取鼠标当前指向元素

    那么有没有同学思考过,这个功能,如果用 JavaScript 怎么实现呢? 显然,随着鼠标的移动,鼠标指向页面元素是不断变化,我们需要知道鼠标当前指向了哪一个页面元素。...track_mouse(event){ var elementMouseIsOver = get_current_element(event) console.log('当前鼠标指向元素是...:', elementMouseIsOver) } window.onmousemove = track_mouse 这样,当鼠标移动时,可以实时获得当前鼠标指向元素。...这样直接打印元素可能不太好查看,我们再加个元素边框功能。...有了这个功能以后,只要我们再稍稍修改一下代码,就可以实现自动获取鼠标指向位置 XPath 了。有兴趣同学请留言,我继续写。

    4.9K73

    浅谈Angular

    Angular数据绑定: 1.插值表达式 {{}}--括号里可填表达式,不能填语句!...b.dom属性绑定 表示是初始值 大部分属性都是一一对应,既有DOM属性,也有HTML属性 但有一小部分属性,只有HTML属性没有DOM属性 就算DOM属性和HTML...ng-show本质上设置元素display值为none,只是设置样式,DOM结构还在,而*ngIf是真正意义上从DOM结构中移除结构型指令 *ngIf--控制元素显隐性 ?...来控制元素显隐 在自定义指令里获取指令添加到其上面的元素,需要依赖注入ElementRef服务 如果自定义指令想要接收从外部传入值,需要使用@Input装饰器\....标准下:event.targetdiv.onclick = function (e) {var even = e || window.event;var target = event.target || event.srcElement

    4.4K10

    某个crontab定时任务没有按照我们预期执行,我们要如何进行故障排查

    某个crontab定时任务没有按照我们预期执行,我们要做故障排查步骤如下:查看日志:首先,查看crontab执行相关日志,可以使用命令 grep CRON /var/log/syslog 来查看...cron日志记录。...如果没有找到相关日志,可以尝试查看 /var/log/cron 或 /var/log/messages。检查crontab文件:检查crontab文件路径和内容是否正确。...cron任务执行时间依赖于系统时间,因此如果服务器时间错误,可能会导致cron任务未按预期执行。检查其他系统资源:确认系统资源是否足够。...如果服务器CPU、内存或磁盘空间资源不足,可能会导致cron任务未能正常执行。日志调试:在crontab中增加输出日志,以便更详细地了解任务执行情况。

    99581

    v-if绑定元素为什么事件没有响应

    Vue是一套构建用户界面的 渐进式框架,入门也比较容易,但在使用过程中却可能会遇到这样那样问题,今天笔者就将使用中遇到一个问题记录于此,希望能帮到遇到类似问题朋友。...="check"> $("#test").click(function(){ //todo }); 在html中使用v-if来控制该button显示...,并在js代码中绑定该buttonclick事件,但是不幸是如果载入时check变量为false,该button就会隐藏,即使后期check变为true而该button又显示出来,但是test按钮...click事件却只有在页面加载时候绑定(不幸是该button没有在dom中形成而导致事件绑定失败),所以click事件不会响应,所以使用v-if绑定事件需要使用另外一种方式来绑定click事件:v-on

    1.2K20

    原生JS | 随机抽取不重复数组元素 —— 有没有更好方法?

    HTML5学堂-码匠:从数组中随机抽取不重复元素,构成新数组,拥有多种方法,来看看你用方法性能如何? 效果功能需求 从一个数组当中,随机抽取数个元素,构成新数组,要求这些元素不能重复。...方法1:较为“传统”实现方法 基本实现思路 从第二次随机抽取元素开始,需要将抽取元素与当前新数组已抽取元素相比较,如果相同,则重新抽取,并再次执行比较操作。...,但依旧存在“失败抽取”现象,而且失败抽取概率没有发生任何变化。...基本实现思路 该方法基本原理是,在抽取一个元素之后,将该元素与数组末端最后一个元素交换,然后将数组最后一个元素扔掉。...也就是说,我们只要保证当前元素被末尾元素替代,并不断减小随机数范围,“数组长度”和“数组末尾元素值”是可以忽略

    9.2K50

    js编程笔记之事件异常

    事件处理程序运行环境 1.ele.onxxx = function (event) {} 程序this指向是dom元素本身 2.obj.addEventListener(type, fn, false...); 程序this指向是dom元素本身 3.obj.attachEvent(‘on’ + type, fn); 程序this指向window 封装兼容性 addEvent(elem, type, handle...,会存在事件冒泡功能,即同一事件, 自子元素冒泡向父元素。...(自底向上) 复制代码 事件捕获: 结构上(非视觉上)嵌套关系元素,会存在事件捕获功能,即同一事件, 自父元素捕获至子元素(事件源元素)。...(自顶向下) IE没有捕获事件 触发顺序,先捕获,后冒泡 focus,blur,change,submit,reset,select 等事件不冒泡 复制代码 取消冒泡和阻止默认事件 取消冒泡: W3C标准

    68540

    javascript事件详解

    ,在使用dom0级情况下,事件处理程序在其所属元素作用域内运行,在使用attachEvent()方法情况下,事件处理程序在全局作用域下运行,其中this等于window。...,而target是指当前目标元素;比如如下代码,对btn按钮触发点击事件,那么e.currentTraget指向了this,e.target也指向了this;如下代码: var btn = document.getElementById...document.body了,那么e.target 指向与 btn那个元素了,如下代码: document.body.onclick = function(e){ console.log(e.currentTarget...currentTarget就是指被点击那个元素,但是target是当前点击目标元素,如上代码,由于btn上并没有注册事件,结果click事件就冒泡到了document.body,在那里事件才得到了处理...console.log(event); console.log(event.target); // 打印事件目标元素 } IE下是使用event.srcElement来指定当前目标元素,如下代码

    1.4K50

    通过JS屏蔽用户F12 审查元素

    众所周知,审查元素情况下,大家都可以随机更改一部分页面的代码, 注入恶意JS等等,这种情况避免也不难,虽然还能看到一部分H5源码,但是无法修改 一、屏蔽F12 审查元素 document.onkeydown...window.event.keyCode = 505; } if(window.event && window.event.keyCode == 8) { alert(str+"\n请使用Del键进行字符删除操作...; window.event.returnValue=false; } } 除了屏蔽这个,我们还有其他有趣设置: 二、屏蔽右键菜单 document.oncontextmenu...= function (event){ if(window.event){ event = window.event; }try{ var the = event.srcElement; if (!...三、屏蔽粘贴 document.onpaste = function (event){ if(window.event){ event = window.event; }try{ var the = event.srcElement

    1.6K10

    通过一段JS代码简单防止别人扒自己网页,精髓在后面!

    简单防止别人扒自己网页(精髓在最下面) ? 有个神奇东西叫做审查元素,按下神奇F12,就是见证奇迹时刻。...审查元素真的是一个强大功能,有的时候看中别人网站某个样式做比较好,按下F12审查元素来查看别人代码,统统扒过来。...blank"; //将当前窗口跳转置空白页 } function ck() { console.profile(); console.profileEnd(); //我们判断一下profiles里面有没有东西...document.onpaste = function(event) { if (window.event) { event = window.event; } try { var the = event.srcElement...转载请注明:通过一段JS代码简单防止别人扒自己网页,精髓在后面! - 小维个人博客 部分素材来源于网络,如有侵权请联系删除!

    4.8K40

    javascript当中mouseDown事件,mouseUp,和mouseClick执行顺序

    当两个对象重叠在一起,(比如这里document和span),一定是先执行所有元素mouseDown事件,之后所有元素mouseUp,之后执行所有元素mouseClick。...当两个对象重叠在一起,(比如这里document和span),一定是先执行所有元素mouseDown事件,之后所有元素mouseUp,之后执行所有元素mouseClick    ...language=JavaScript>         function linkClickHandler(event) {         //    alert(event.srcElement+"is event.srcElement...");         //    alert(event.target+"is event.target");             var t =event.srcElement||event.target...");        //     alert(event.target+"is event.target");             var t =event.srcElement||event.target

    1.2K30

    网页一些禁止操作代码

    在前端开发中,F12审查元素情况下,大家都可以随机更改一部分页面的代码,注入恶意JS等等,这种情况避免也不难,虽然还能看到一部分H5源码,但是无法修改。...屏蔽F12 审查元素     document.onkeydown = function () {         if (window.event && window.event.keyCode...        }         if (window.event && window.event.keyCode == 8) {             alert(str + "\n请使用Del键进行字符删除操作...if (window.event) {             event = window.event;         }         try {             var the = event.srcElement...            return false;         }     } 废江博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 转载请注明原文链接:网页一些禁止操作代码

    59820
    领券