简体   繁体   English

页面刷新时设置激活 class JQuery?

[英]Set active class when page refreshes JQuery?

I have a UL on my page which is acting as navigation (it works fine).我的页面上有一个 UL,它充当导航(它工作正常)。 I copied some jQuery code to keep the classes as they are on page reload (through location.reload()) but can't set it up as I don't know much javascript.我复制了一些 jQuery 代码以保持类在页面重新加载时保持原样(通过 location.reload()),但无法设置它,因为我不太了解 javascript。

and my HTML code:和我的 HTML 代码:

<!-- TABS NAVIGATION -->
            <div id="tabs-nav">
                <div class="row">
                    <div class="col-lg-12 text-center">
                        <ul id="myTab" class="tabs-1 ico-55 red-tabs clearfix">
                            <!-- TAB-1 LINK -->
                            <li class="tab-link current" data-tab="tab-1">
                                <span class="flaticon-pizza"></span>
                                <h5 class="h5-sm">Pizze</h5>
                            </li>

                            <!-- TAB-2 LINK -->
                            <li class="tab-link " data-tab="tab-2">
                                <span class="flaticon-burger"></span>
                                <h5 class="h5-sm">Panini</h5>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
            <!-- END TABS NAVIGATION -->


            <!-- TABS CONTENT -->
            <div id="tabs-content">

                <?php include_once "inc/db_connect.php"; ?>

                <!-- TAB-1 CONTENT -->
                <div id="tab-1" class="tab-content current">
                    <table class="editableTable sortable">
                        <!-- sql query -->
                    </table>
                </div>
                <!-- END TAB-1 CONTENT -->


                <!-- TAB-2 CONTENT -->
                <div id="tab-2" class="tab-content">
                    <div class="row">
                        <!-- database query -->
                    </div>
                </div>
                <!-- END TAB-2 CONTENT -->    
            </div>
            <!-- END TABS CONTENT -->

the way I intend to use location.reload我打算使用 location.reload 的方式

$(document).ready(function () {
    $('.editableTable').SetEditable({
        onAdd: function () {
            $.ajax({
                type: 'POST',
                url: "action.php",
                dataType: "json",
                data: { action: 'add' },
                success: function () {
                    location.reload();
                },
            });
        }
    });

    $('li').on('show.bs.tab', function(e) {
        localStorage.setItem('activeTab', $(e.target).class('current'));
    });
    var activeTab = localStorage.getItem('activeTab');
    if(activeTab){
        $('#myTab li[href="' + activeTab + '"]').tab('show');
    }
});

Saving $(e.target).class('current') won't work.保存$(e.target).class('current')将不起作用。 There is no .class() method...没有.class()方法...

It seems you wish to use the href to open the tab... But there is no href !看来您希望使用href打开选项卡...但是没有href

So I think you should use the data-tab .所以我认为你应该使用data-tab

$(document).ready(function(){

  console.log("Page just loaded")

  $('li').on('show.bs.tab', function(e) {
    localStorage.setItem('activeTab', $("li.current").data('tab')); // Change is here -- Save the data-tab value
    console.log("a data-tab value was saved to localStorage")
  });

  var activeTab = localStorage.getItem('activeTab');
  if(activeTab){

    console.log("There is an activeTab value stored:" , activeTab)

    // Loop all li to find the one having a data-tab == activeTab
    $('#myTab li').each(function(){
      if($(this).data("tab") === activeTab){
        $(this).tab('show');
      }
    });
  }
})

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

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