javascript - 如果 div 可见,则不执行任何操作,否则 .show

标签 javascript jquery html

我有这个 HTML 代码:

<ul>
   <li>
      <h1>
        <span id="span0">Lorem</span>
        <p id="p0">Lorem ipsum dolor sit amet,</p>
      </h1>
   </li>
   <li>
      <h1>
        <span id="span1">Lorem2</span>
        <p id="p1">Lorem ipsum dolor sit amet,</p>
      </h1>
   </li>
   <li>
      <h1>
        <span id="span2">Lorem3</span>
        <p id="p2">Lorem ipsum dolor sit amet,</p>
      </h1> 
   </li>
...
</ul>

我有一个 JS 函数,如果单击其兄弟跨度,则显示一个段落:

$('span[id^="span"]').click(function() {
    $('p[id^="p"]').hide( 900);
    $(this).next('p[id^="p"]').show(900);
});

它的问题是,即使目标段落已经显示(可见),它也会触发动画。

我如何编写一个“if”语句,仅当其当前状态被隐藏时才显示目标段落,并且如果其已显示则不执行任何操作?

最佳答案

改变这个

$(this).next('p[id^="p"]').show(900);

$(this).next('p[id^="p"]:hidden').show(900);

使用hidden选择器仅选择那些隐藏的项目

关于javascript - 如果 div 可见,则不执行任何操作,否则 .show,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35416284/

相关文章:

javascript - 未捕获的语法错误 : Unexpected end of input

Javascript/Jquery - 获取多个 block 的宽度

javascript - 简单的 node.js 服务器返回成功或错误

html - 如何垂直对齐div?

html - 我如何更改此 HTML/CSS 以使容器水平扩展到 float 的子项?

javascript - jQuery ReplaceWith 添加克隆节点的两个副本

javascript - 如何拆分和添加字符串中的各个值?

javascript - 应用程序在生产环境中加载时间过长

每个函数内的 Javascript jQuery 数组函数

html - 在 div 顶部居中图像