如何使用jquery获取前一次点击的目标?

j5fpnvbx  于 2024-01-07  发布在  jQuery
关注(0)|答案(1)|浏览(192)

如何使用jquery在点击时获取前一个目标?因为我需要比较前一个被点击的元素,并将其与当前被点击的元素进行比较。
就像这样:

  1. $('#myTab').on('click', function(e){
  2. var prevTar = e.target.prev();
  3. if(prevTar == e.target){
  4. console.log('view all');
  5. }
  6. })

字符串

30byixjq

30byixjq1#

将前一个目标存储到外部变量中

  1. let prevTar;
  2. $('#myTab').on('click', function(evt) {
  3. const target = evt.target
  4. if (prevTar && prevTar === target) {
  5. console.log('view all');
  6. }
  7. // Update prev Target
  8. prevTar = target;
  9. })

个字符
正如你在上面看到的,e.target可能并不总是反映预期的LI元素(如果:事件起源于LI后代)。为了解决这个问题,你可以使用事件委托,比如:

  1. let prevTar;
  2. $('#myTab').on('click', "li", function(evt) {
  3. if (prevTar && prevTar === this) {
  4. console.log('view all');
  5. }
  6. // Update prev Target
  7. prevTar = this;
  8. })
  1. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  2. <ul id="myTab">
  3. <li>Lorem <span>SPANIPSUM</span></li>
  4. <li>Dolor <b>bold amet</b></li>
  5. </ul>

的字符串
现在,即使您单击<li>元素的后代(<i><span>),代码也会按预期工作,因为this将引用委托者#myTab UL元素的处理程序LI。

展开查看全部

相关问题