在jquery中获取上一个事件动作

Posted

技术标签:

【中文标题】在jquery中获取上一个事件动作【英文标题】:Get the previous event action in jquery 【发布时间】:2018-02-09 11:32:11 【问题描述】:

我正在尝试使用 jquery 获取上一个事件操作

<tr id="det"><td></td></tr>
<tr id="moredet"><td></td></tr>
<tr id="det"><td></td></tr>

$(document).on("click","#det",function(e)
    $(this).next("#moredet").fadeToggle("slow");
);

我想要的是,当单击 id 行“det”时,单击的下一个 id 行“moredet”将变为淡出,当我单击任何其他行 id“det”时,前一个淡入行行将淡出并且单击行的下一行 id "moredet" 将淡入。

【问题讨论】:

您不应该在文档中有重复的id 是的,使用 classes 而不是 ids 。否则您的代码似乎是正确的。 【参考方案1】:

不要使用重复的 id 使用类。它的规则违反。您可以使用nextprevsize 来检查条件以解决您的问题。

$(document).on("click", ".det", function(e) 
  if ($(this).next('tr').size() > 0) 
    $(this).next(".moredet").fadeToggle("slow");
   else 
    $(this).prev(".moredet").fadeToggle("slow");
  
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr class="det">
    <td>1</td>
  </tr>
  <tr class="moredet">
    <td>2</td>
  </tr>
  <tr class="det">
    <td>3</td>
  </tr>
</table>

【讨论】:

非常感谢。抱歉忘记了我只是一个初学者的规则 很高兴为您提供帮助。快乐编码:)

以上是关于在jquery中获取上一个事件动作的主要内容,如果未能解决你的问题,请参考以下文章

jQuery-3.事件篇---键盘事件

jquery模拟鼠标点击动作

jQuery的事件与效果

jquery触发两次onchange事件

jquery 事件--鼠标事件

jQuery 之 事件方法