Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WordPress Divi主题-锚链接打开特定选项卡切换_Javascript_Html_Css_Wordpress - Fatal编程技术网

Javascript WordPress Divi主题-锚链接打开特定选项卡切换

Javascript WordPress Divi主题-锚链接打开特定选项卡切换,javascript,html,css,wordpress,Javascript,Html,Css,Wordpress,我正在尝试获取锚链接,以打开特定页面上的选项卡 只有当锚链接与选项卡位于同一页面上时,才能使用类似于上的解决方案 我在堆栈上找到了一个解决这个问题的不同线程,但它在一次我无法访问的聊天中解决了最终的解决方案() 我可以在他们的网站上看到他们能够让它工作() 我如何访问Elko Downtown的站点代码以找到下面的JavaScript的最终版本,从而使其正常工作 jQuery(function($) { $('.menu-item-179 a').on('click', fu

我正在尝试获取锚链接,以打开特定页面上的选项卡

只有当锚链接与选项卡位于同一页面上时,才能使用类似于上的解决方案

我在堆栈上找到了一个解决这个问题的不同线程,但它在一次我无法访问的聊天中解决了最终的解决方案()

我可以在他们的网站上看到他们能够让它工作()

我如何访问Elko Downtown的站点代码以找到下面的JavaScript的最终版本,从而使其正常工作

  jQuery(function($) {
        $('.menu-item-179 a').on('click', function(event){
            tabScroll('.et_pb_tab_0');
            return false;
        });
        $('.menu-item-180 a').on('click', function(event){
            tabScroll('.et_pb_tab_1');
            return false;
        });
        $('.menu-item-181 a').on('click', function(event){
            tabScroll('.et_pb_tab_2');
            return false;
        });
        $('.menu-item-182 a').on('click', function(event){
            tabScroll('.et_pb_tab_3');
            return false;
        });
        $('.menu-item-183 a').on('click', function(event){
            tabScroll('.et_pb_tab_4');
            return false;
        });

    function tabscroll(target) {
        $("html, body").animate({ scrollTop: $('#member-tabs').offset().top }, 1000);
        setTimeout($('#member-tabs' + target + ' a').click(), 2000 );
    }

    $(function hash() {
        var hash = window.location.hash.replace('#', "");

        if (hash == '#shop') { tabscroll('.et_pb_tab_1'); }
        if (hash == '#service') { tabscroll('.et_pb_tab_0'); }
        if (hash == '#eat-drink') { tabscroll('.et_pb_tab_2'); }
        if (hash == '#arts-entertainment') { tabscroll('.et_pb_tab_3'); }
        if (hash == '#stay') { tabscroll('.et_pb_tab_4'); }
    });
});

通过检查浏览器,可以看到通过web传输的每一行javascript。如果你想做的只是看看他们最终完成了什么,代码如下所示

但是,如果您正在使用WP并试图使用JS/JQuery做一些事情,我强烈建议您首先学习如何在WP之外完成这些功能,并了解正在发生的事情,您从中获取的代码并不总是与您的页面结构/元素相匹配,并且您总是想知道为什么事情不起作用

下面是为他们编写的代码:


    function _setTab(){
        // get current hash value
        var curHash = window.location.hash.substr(1);
        // only continue if hash provided and scoped to member tabs
        if( !curHash || !curHash.match('member-tabs') ){ return false; }

        // split and int val tab num
        curHash = parseInt(curHash.split('|')[1]);

        // ignore if tab is current state
        if( curHash === window._tabSelected ){ return false; }
        // set current tab to window
        window._tabSelected = curHash;

        // add click event to tab selected
        switch(curHash){
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
                jQuery('#member-tabs .et_pb_tab_'+curHash+' a').click();
            break;

            default:
                return false;
            break;
        }

        // scroll to tabs container
        _scrollToTabs();
    }

    // scroll to member tabs container with 50px offset
    function _scrollToTabs(){
        var oTabs = jQuery('#member-tabs');
        if( oTabs.length > 0 ){
            jQuery('html,body').animate({
                scrollTop: (oTabs.offset().top - 50)
            }, 1000);
        }
        return false;
    }

    // set falsey state for tab selected on load
    window._tabSelected = false;

    // we need to attach to window load because the tabs functions are initialized later in document
    jQuery(window).on('load', function(){
        // check for initial hash state
        _setTab();

        // add hash change window listener
        jQuery(window).on('hashchange', function(){
            _setTab()
        });

        // void submenu when we are in member section 
        var curPath = window.location.pathname;
        if( curPath.match('our-members') ){
            // only change hash and do not reload page
            jQuery('#menu-item-98 ul li a').on('click', function(e){
                e.stopImmediatePropagation();
                window.location.hash = jQuery(this).prop('hash');
                return false;
            });
        }
    });


我完全理解您关于在WP和我的主题之外理解JQuery的说明-我将计划在将此添加添加到我的站点之前这样做。作为后续行动,我在我的网站上有多个产品类别页面,我正在考虑将其添加到,()。最佳做法是将此代码完整地添加多次(使用不同的CSS ID),还是有更好的方法将其压缩?您只需添加一次,上面的代码只需从URL/#此部分获取哈希,然后在管道后找到数字并单击相应的选项卡。不需要重复代码,只要确保选择器(其他人在他们没有的选项卡部分上放置了一个ID)在您希望运行此代码的所有页面的选项卡部分上是相同的。