简体   繁体   English

如何使用jQuery隐藏显示内容

[英]how to hide show content with jquery

i'm creating a work section and in that section i've created a navigation with some image containers 我正在创建一个工作部分,在该部分中,我创建了带有一些图像容器的导航

在此处输入图片说明

now when the user click on one of the navigation link . 现在,当用户单击导航链接之一时。 it would show the relative image container linked to that navigation link . 它会显示链接到该导航链接的相对图像容器。 for example if i clicks on the branding link it will show me the image container with the class branding. 例如,如果我单击品牌链接,它将显示带有类别品牌的图像容器。 it's just like mix it up plugin but i'm not allowed to use mixitup. 就像把它混起来一样,但是我不允许使用mixitup。

i was trying this : https://jsfiddle.net/to1uuvnb/19/ 我正在尝试这个: https : //jsfiddle.net/to1uuvnb/19/

but it didn't helped 但这没有帮助

   <ul class="nav nav-pills nav-justified nav-tabss">
        <li class="active">
          <a href="#">All</a>
        </li>
        <li>
          <a href="#">Branding</a>
        </li>
        <li>
          <a href="#">Advertise</a>
        </li>
        <li>
          <a href="#">Print</a>
        </li>
      </ul>

      <div class="branding">
        branding
      </div>
      <div class="advertise">
        advertise
      </div>
      <div class="print">
        print
      </div>

my js 我的js

$('.nav-tabss').children('li').click(function(){

 var branding = $(this).text();

 if ( branding === "branding" )
 {
    $('.branding').show();
    $('.adverise').hide();
    $('.print').hide()
 }

});

i know my js code is not efficient . 我知道我的js代码效率不高。 if you guys can update the code that would be better and helpful thanks 如果你们可以更新代码,那会更好,更有用,谢谢

$('.nav-tabss li a').click(function(){

    var branding = $(this).text();
//alert(branding)
     if ( branding === "Branding" )
     {
        $('.branding').show();
        $('.advertise').hide();
        $('.print').hide()
     }
    if ( branding === "All" )
     {
        $('.branding').show();
        $('.advertise').show();
        $('.print').show()
     }
     if ( branding === "Advertise" )
     {
        $('.branding').hide();
        $('.advertise').show();
        $('.print').hide()
     }
    if ( branding === "Print" )
     {
        $('.branding').hide();
        $('.advertise').hide();
        $('.print').show()
     }


  });

use this code 使用此代码

You can use data attribute instead of using href or text node, data attribute is flexible. 您可以使用数据属性而不是href或文本节点,数据属性很灵活。

HTML 的HTML

<ul class="nav nav-pills nav-justified nav-tabss">
   <li class="active"> <a data-filter="all" class="trigger" href="#">All</a></li>
   <li> <a data-filter="branding" class="trigger" href="#">Branding</a></li>
   <li> <a data-filter="advertise" class="trigger" href="#">Advertise</a></li>
   <li> <a data-filter="print" class="trigger" href="#">Print</a></li>
</ul>

<div class="branding">branding</div>
<div class="advertise">advertise</div>
<div class="print">print</div>

Javascript code use switch statement to show hide divs. Javascript代码使用switch语句显示hide div。

JS JS

$('.trigger').click(function (e) {

    e.preventDefault();

    var branding = $(e.target).data('filter');
    console.log(branding);

    switch (branding) {

        case "branding":
            $('.branding').show();
            $('.advertise').hide();
            $('.print').hide();
            break;

        case "advertise":
            $('.advertise').show();
            $('.branding').hide();
            $('.print').hide();

            break;

        case "print":
            $('.advertise').hide();
            $('.branding').hide();
            $('.print').show();
            break;

        case "all":
            $('.advertise').show();
            $('.branding').show();
            $('.print').show();
            break;

        default:
            $('.branding').show();
            $('.advertise').show();
            $('.print').show();

    }

JSFiddle Link JSFiddle链接

Check you want the same: 检查是否要相同:

$('.nav-tabss').children('li').click(function(){

    var branding = $(this).text().trim().toLowerCase();

     if ( branding === "branding" )
     {
        $('.branding').show();
        $('.advertise').hide();
        $('.print').hide()
     }
    else if( branding === "advertise" )
     {
        $('.branding').hide();
        $('.advertise').show();
        $('.print').hide()
     }
    else if( branding === "print" )
     {
        $('.branding').hide();
        $('.advertise').hide();
        $('.print').show()
     }
    else 
     {
        $('.branding').show();
        $('.advertise').show();
        $('.print').show()
     }

  });

Click here 点击这里

Well looking at your html it looks like you're using bootstrap. 好了,看看您的html好像您正在使用引导程序。 Why don't you just use bootstrap's tabs : 您为什么不只使用引导程序的选项卡

 $(function() { $('#nav-tabss a').click(function(e) { e.preventDefault() $(this).tab('show') }) }) 
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <div> <ul class="nav nav-pills nav-justified" id="nav-tabss"> <li class="active"> <a href="#none" data-toggle="tab">All</a> </li> <li> <a href="#branding" data-toggle="tab">Branding</a> </li> <li> <a href="#advert" data-toggle="tab">Advertise</a> </li> <li> <a href="#print" data-toggle="tab">Print</a> </li> </ul> <div class="tab-content"> <div class="tab-pane active" id="none">None</div> <div class="tab-pane" id="branding">Branding</div> <div class="tab-pane" id="advert">Advertise</div> <div class="tab-pane" id="print">Print</div> </div> </div> 

Try this 尝试这个

$('.nav-tabss').on('click','a',function(){

var branding = $(this).text();

 if ( branding === "Branding" )
 {
    $('.branding').show();
    $('.adverise').hide();
    $('.print').hide()
 }

}); });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM