JavaScript 隐藏和显示内容

发布于 2024-12-02 00:19:13 字数 1765 浏览 0 评论 0原文

我一直在寻找隐藏和显示内容的纯 CSS 答案,但运气不佳后,我一直在研究一段 JavaScript 代码。我的问题在代码下面,因为它可以帮助您先查看代码。

      <script type="text/javascript">
    $(document).ready(function(){
            $('.text_container').addClass("visible");

        $('.text_container').click(function() {
            var $this = $(this);
            if ($this.hasClass("visible")) {
                    $(this).removeClass("visible").addClass("hidden");
            } else {
                    $(this).removeClass("hidden").addClass("visible");
            }
        });
    });
   </script>  


        <div id="services" class="text_container"> 
         <h4>SERVICES</h4>
             <div>
              <p>Loads of text blah blah blah</p>
             </div>
         </div>


         /* HIDE and SHOW content JavaScript function */
  .hidden div {display:none;}
  .visible div {display:block;} 

  .text_container {
      background-color: #39b54a;
     background-image: url("pattern2.png");
     border: 1px solid #777777;
    box-shadow: 0 1px 1px  inset, 0 0 40px rgba(0, 0, 0, 0.5) inset, 0 16px 0 rgba(255, 255, 255, 0.4) inset, 0 4px 5px rgba(0, 0, 0, 0.6);
    color: #000000;
    padding: 5px;
    text-align: left;
    width: auto;

  }
  .text_container h4 {
     cursor: pointer;
  }
  .text_container div p {
      margin-bottom: 10px;
  }
  .visible > div {
   display: block;
   font-size: 17px;
    height: 100%;
  }

  #rating > div {
    clear: left;
    height: 260px;
  }
  /* end of HIDE and SHOW content javascript function */  

目前,正如预期的那样,class = text_container 区域的 div 是可单击的,因此,如果在选择表单时将表单放置在子 DIV 中,则内容会隐藏。我只想制作 H4 元素 可点击,因此点击显示的内容不会隐藏该内容。

我对 JavaScript 毫无用处,我想这需要重新调整 js。

I was searching for a pure CSS answer to hiding and showing content but after no luck I have been playing around with a piece of JavaScript code. My question is below the code, as it may help you to see the code first.

      <script type="text/javascript">
    $(document).ready(function(){
            $('.text_container').addClass("visible");

        $('.text_container').click(function() {
            var $this = $(this);
            if ($this.hasClass("visible")) {
                    $(this).removeClass("visible").addClass("hidden");
            } else {
                    $(this).removeClass("hidden").addClass("visible");
            }
        });
    });
   </script>  


        <div id="services" class="text_container"> 
         <h4>SERVICES</h4>
             <div>
              <p>Loads of text blah blah blah</p>
             </div>
         </div>


         /* HIDE and SHOW content JavaScript function */
  .hidden div {display:none;}
  .visible div {display:block;} 

  .text_container {
      background-color: #39b54a;
     background-image: url("pattern2.png");
     border: 1px solid #777777;
    box-shadow: 0 1px 1px  inset, 0 0 40px rgba(0, 0, 0, 0.5) inset, 0 16px 0 rgba(255, 255, 255, 0.4) inset, 0 4px 5px rgba(0, 0, 0, 0.6);
    color: #000000;
    padding: 5px;
    text-align: left;
    width: auto;

  }
  .text_container h4 {
     cursor: pointer;
  }
  .text_container div p {
      margin-bottom: 10px;
  }
  .visible > div {
   display: block;
   font-size: 17px;
    height: 100%;
  }

  #rating > div {
    clear: left;
    height: 260px;
  }
  /* end of HIDE and SHOW content javascript function */  

Currently as expected the div with class = text_container area is clickable, so if a place a form in the child DIV when you select the form the content hides. I Would like to make only the H4 element
clickable so clicking on the shown content will not hide the content.

I am useless at JavaScript and I imagine this requires rejigging the js.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

毅然前行 2024-12-09 00:19:13

你可以使用:

$('.text_container h4').click(function() {
    if($(this).hasClass("visible")) {
        $(this).removeClass("visible").addClass("hidden");
    } else {
        $(this).removeClass("hidden").addClass("visible");
    }
});

$(' ... ') 中的内容就像一个 CSS 选择器,所以如果你了解 CSS 那么这对你来说不是问题。

使用 CSS,您可以使用以下方式设置 h4 元素的样式:

.text_container h4 { color: #000000; }

同样,您可以使用 jQuery 创建一个包装集,并通过以下方式选择它:

$('.text_container h4')

You can use:

$('.text_container h4').click(function() {
    if($(this).hasClass("visible")) {
        $(this).removeClass("visible").addClass("hidden");
    } else {
        $(this).removeClass("hidden").addClass("visible");
    }
});

The content in the $(' ... ') is just like a CSS selector, so if you know CSS then it won't be a problem for you.

With CSS you could style that h4 element with:

.text_container h4 { color: #000000; }

and just the same, you can create a wrapped set with jQuery that selects it with:

$('.text_container h4')
萧瑟寒风 2024-12-09 00:19:13

这将实现您的目标,示例

$(document).ready(function() {
    $('.text_container h4').addClass("visible");

    $('.text_container h4').click(function() {
        var $this = $(this).parent();
        if ($this.hasClass("visible")) {
            $this.removeClass("visible").addClass("hidden");
        } else {
            $this.removeClass("hidden").addClass("visible");
        }
    });
});

我们选择 H4 并添加点击事件,然后使用 .parent() 访问到父级 DIV。

This will accomplish your goal, example:

$(document).ready(function() {
    $('.text_container h4').addClass("visible");

    $('.text_container h4').click(function() {
        var $this = $(this).parent();
        if ($this.hasClass("visible")) {
            $this.removeClass("visible").addClass("hidden");
        } else {
            $this.removeClass("hidden").addClass("visible");
        }
    });
});

We are selecting the H4 and adding the click event to it, but then using .parent() to access to parent DIV.

平安喜乐 2024-12-09 00:19:13

$('.text_container')... 替换为 $('.text_container h4')... 或者更好的是 $('h4' ).... 如果它是页面上唯一的 H4 元素。

replace $('.text_container')... with $('.text_container h4')... or, better yet, $('h4').... if it's the only H4 element on the page.

梦开始←不甜 2024-12-09 00:19:13

将此:更改

      $('.text_container').click(function() {

为:

      $('.text_container h4').click(function() {

change this:

      $('.text_container').click(function() {

to this:

      $('.text_container h4').click(function() {
冰之心 2024-12-09 00:19:13

只需替换为

$('.text_container h4').click( ...

Simply replace with

$('.text_container h4').click( ...
明月夜 2024-12-09 00:19:13

我不确定某人如何能够点击带有 display: none 的元素。另外,将其替换

if ($this.hasClass("visible")) {
    $(this).removeClass("visible").addClass("hidden");
} else {
    $(this).removeClass("hidden").addClass("visible");
}

为:

$(this).toggle();

完整代码:

$(function() {
    $('.text_container h4').click(function() {
        $(this).parent().toggle(); // toggles between visible and hidden
    });
});

I am not sure how someone will be able to click on an element with display: none. Also, replace this:

if ($this.hasClass("visible")) {
    $(this).removeClass("visible").addClass("hidden");
} else {
    $(this).removeClass("hidden").addClass("visible");
}

With this:

$(this).toggle();

Full code:

$(function() {
    $('.text_container h4').click(function() {
        $(this).parent().toggle(); // toggles between visible and hidden
    });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文