如何使用jQuery获取点击事件的上一个目标元素?
如何用jQuery获取上一次点击的目标元素
你原来的代码里,e.target.prev()是获取当前点击元素的前一个兄弟DOM节点,并不是你需要的“上一次点击过的元素”,而且直接用==对比DOM元素的方式也不准确。要实现对比上一次和当前点击元素的需求,你需要用变量存储上一次点击的元素,具体实现如下:
正确示例代码
// 声明变量存储上一次点击的元素 let prevClickedElement = null; $('#myTab').on('click', function(e) { // 将当前点击的原生DOM元素转为jQuery对象,方便后续操作 const currentClicked = $(e.target); // 先判断上一次点击的元素是否存在,再对比是否与当前元素相同 if (prevClickedElement && prevClickedElement.is(currentClicked)) { console.log('view all'); } // 更新存储的上一次点击元素为当前元素 prevClickedElement = currentClicked; });
补充说明
- 第一次点击时
prevClickedElement为null,所以要先做存在性判断,避免报错 - 使用jQuery的
is()方法对比元素,比原生的==更可靠,能准确判断是否为同一个DOM元素 - 如果你的点击目标是
#myTab下的特定子元素(比如tab标签项),可以把事件委托更精准地绑定到子元素上,比如:$('#myTab').on('click', '.tab-item', function(e) { // 逻辑同上 });
内容的提问来源于stack exchange,提问作者cathleen cabungcal
相关产品推荐
相关产品推荐

