【问题标题】:Wordpress Divi Theme - Anchor link to accordion toggleWordpress Divi 主题 - 手风琴的锚链接切换
【发布时间】:2017-01-03 22:51:35
【问题描述】:

我正在尝试获取指向手风琴的锚链接,然后打开切换开关。

我在 google 上找到了一个代码 sn-p 可以工作,但不完全。

当我在手风琴所在的页面上并单击锚链接时,它会正确滚动到手风琴并打开选项卡 --- 但是,它此时会刷新页面并且不会停留在手风琴是。

如果我点击手风琴所在页面以外的另一个页面的锚链接,它所做的只是将我引导到该页面——而不是手风琴。

任何帮助都会很棒。

网址是http://casafamilyserv.wpengine.com/resources/

锚链接是页面右上角的“捐款”按钮。

这里是 JS sn-p:

<script>
    jQuery(function($) {
    //accordion
    $('.menu-item-98 a').on('click', function(event){
        $('#my-accordion .et_pb_accordion_item_2 .et_pb_toggle_title').click();
        $("html, body").animate({ scrollTop: $('#my-accordion').offset().top }, 1000);
    });
});

</script>

锚链接是打开“贡献/捐赠”手风琴选项卡。

【问题讨论】:

    标签: javascript jquery html wordpress accordion


    【解决方案1】:

    只需添加return false;

    $('.menu-item-98 a').on('click', function(event){
        // sometimes you may also need to add
        // event.preventDefault();
    
        donateScroll();
    
        return false;
    });
    

    发生这种情况是因为您的捐赠按钮的网址中有一个#donate

    <a href="/resources#donate">Make A Donation</a>
    

    默认情况下,浏览器会尝试在页面上的某处找到id="donate" 并跳转到它。添加 return false; 会阻止默认行为,并允许您的 js 完全控制点击事件。

    您还可以添加一些内容以在从其他页面到达时检查现有哈希:

    function donateScroll(){
        $('#my-accordion .et_pb_accordion_item_2 .et_pb_toggle_title').click();
        $("html, body").animate({ scrollTop: $('#my-accordion').offset().top }, 1000);
    }
    
    if(window.location.hash == '#donate') {
        donateScroll();
    }
    

    除了重复滚动和点击逻辑之外,您还可以将其移动到可重复使用的函数中。

    【讨论】:

    • 感谢您的帮助和澄清 -- 添加 return false 会在单击按钮时停止页面刷新 -- 但是,如果我从页面以外的其他页面单击按钮手风琴已打开,它只会加载页面而不会跳转到手风琴。当我添加 event.preventDefault();它阻止了按钮一起点击。
    • 快到了!它现在加载页面并向下滚动,但没有打开手风琴切换
    • 将带有哈希检查的 if 语句包装到 $(function() { });在执行任何其他操作之前等待页面完成加载。
    • 我在另一个网站上遇到了同样的问题,我有多个链接可以打开一个标签(而不是手风琴)。我几乎把所有东西都搞定了并且工作顺利,除了代码只有在我在它调用的页面上时才有效。如果我单击其他页面的锚链接,它将不起作用。你能帮我解决这个问题吗?
    • @Trisha 我认为你应该为此提出一个新问题。
    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    相关资源
    最近更新 更多