JavaScript中获取事件触发源节点的方式

前端界面常常涉及到需要获取各类事件产生的源节点然后进行后续的逻辑处理(如修改状态、颜色等),本文列举了几类常见的获取源节点对象的方式,原生和Jquery等写法均有列举其中

所属分类 WEB

相关标签 JQuery事件节点

前言说明

前端界面中经常需要获取事件的源节点以便进行后续的操作。

由于在前端界面中经常处理的是click事件,本文均已click事件进行举例。

其他事件类似,使用对应的方法即可。

比较常见的事件有:

  • change 元素/内容改变
  • scroll 滚动
  • blur 失去焦点
  • focus 聚焦
  • input 输入
  • drag 拖动
  • click 点击
  • mousedown 鼠标按下
  • mousemove 鼠标移动
  • mouseup 鼠标松开
  • keydown 键盘按键按下

直接绑定方法

HTML部分

<a onclick="deleteNo(this)">DelBtn</a>

JS部分

function deleteNo(this)
{
    //this便是该a标签节点
}
  • 优点:节点获取精准,不易与其他内容冲突
  • 缺点:HTML绑定事件的写法不易与通过动态生成

Jquery绑定方式

引入Jquery有两种常见的获取源节点的方式,两者有轻微差异,请阅代码

HTML部分

<button id="del_btn">DelBtn</button>

JS部分

//方式1直接绑定click事件
$("#del_btn").click(function(){ 
    //$(this)便是触发的节点
    var obj = $(this);
});
//方式2通过on进行事件绑定(推荐)
//方法2支持对动态生成的HTML元素节点进行绑定(关键)
//方法2支持对子级元素的绑定
$("#del_btn").on("click", function(){
    //$(this)便是触发的节点
    var obj = $(this);
});
  • 优点:提供更高的自定义能力
  • 缺点:由于元素重叠冒泡事件触发,可能导致源节点获取不准确

event对象

需要考虑火狐兼容性,通过事件本身获取源节点

JS部分

var event = window.event || arguments.callee.caller.arguments[0];
//obj就是我们要获取的节点
var obj = event.srcElement || event.target;
//可以转成Jquery对象,方便各种使用
var useObj = $(obj);
  • 优点:具有更高的自定义能力
  • 缺点:由于元素重叠冒泡事件触发,可能导致源节点获取不准确

米虫

做一个有理想的米虫,伪全栈程序猿,乐观主义者,坚信一切都是最好的安排!

本站由个人原创、收集或整理,如涉及侵权请联系删除

本站内容支持转发,希望贵方携带转载信息和原文链接

本站具有时效性,不提供有效、可用和准确等相关保证

本站不提供免费技术支持,暂不推荐您使用案例商业化

发表观点

提示

昵称

邮箱

QQ

网址

当前还没有观点发布,欢迎您留下足迹!

同类其他

WEB

CSS文字超出隐藏添加省略号及失效处理

在前端页面中文字超出隐藏并添加省略号是比较常见的样式处理,实际CSS样式中单行省略和多行省略的样式有所差异,在某些特殊场景下多行超出的样式会不生效,本文给出相关解决方案

CSS3通过Gradients实现渐变背景色

使用背景色渐变可以使得页面质感得到大幅度提升,CSS样式中通过gradients属性指定两个或多个颜色之间平滑过渡,由于颜色的渐变是由浏览器生成,因此不会出现不同分辨率下失真的情况。

侧边栏下滑即将越过时动态固顶与上滑恢复

对于很多二栏布局的网站而言,正文部分过长时,侧边栏区域下拉过程中出现大片空白,因此我们可以实现当屏幕下滑达到指定元素位置(如即将越过)后对元素固顶来解决侧边栏区域的空旷感

Jquery.bind()实现前端字段公共校验器

严谨的页面开发需要着重关注前台校验相关的内容,确保请求参数的合法以保证服务器安全,界面参数众多需要建立一个公共方法,公共校验器的核心方法是Jquery.bind()

Vue3中无需引入Vuex的替代方案

Vue3 中所提供组合 API、ref、reactive、provide、inject几大特性,可以支持完成全局状态管理能力,Vuex 是为 Vue 单独提供的状态管理插件,相对比较笨重,如果项目简单可以尝试替代

Jquery+CSS轻松实现导航动态显示隐藏

绝大多数网站都会有个顶部导航,对于手机端而言为了便于访问导航常常会做固顶操作,通过CSS样式配合Jquery的scroll()方法或原生JS监听滑动事件方法,可以轻松实现下滑隐藏,上滑显示的效果

选择个人头像

昵称

邮箱

QQ

网址

评论提示

  • 头像:系统为您提供了12个头像自由选择,初次打开随机为你选择一个
  • 邮箱:可选提交邮箱,该信息不会外泄,或将上线管理员回复邮件通知
  • 网址:可选提交网址,评论区该地址将以外链的形式展示在您的昵称上
  • 记忆:浏览器将记忆您已选择或填写过得信息,下次评论无需重复输入
  • 审核:提供一个和谐友善的评论环境,本站所有评论需要经过人工审核