2017-01-03 49 views
2

我正在嘗試獲取指向手風琴的錨鏈接,並打開切換。Wordpress DivI主題 - 手風琴切換的錨鏈接

我在谷歌上找到了一些代碼片段,但並不完全。

當我在手風琴打開的頁面上,並且我點擊錨鏈接時,它正確地滾動到手風琴並打開選項卡 - 但是,此時刷新頁面並且不停留手風琴在哪裏。

如果我從除手風琴以外的其他頁面上點擊錨鏈接,它所做的只是將我引導到該頁面 - 而不是手風琴。

任何協助將是偉大的。

網址爲http://casafamilyserv.wpengine.com/resources/

的錨鏈接是在頁面的右上角的「立即捐款」按鈕。

這裏是JS片段:

<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> 

的錨鏈接是打開「貢獻/捐」手風琴標籤。

回答

2

只需添加return false;

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

    donateScroll(); 

    return false; 
}); 

發生這種情況,因爲你的捐贈按鈕,在URL中的#donate

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

默認情況下,瀏覽器將嘗試找到id="donate"某個頁面上,並跳轉到它。添加return false;塊的默認行爲,並允許您完全控制點擊事件。

您還可以添加一些來自不同的頁面時到達檢查現有的哈希:

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(); 
} 

而不是重複您的滾動和點擊的邏輯,你也可以將其移動到可重複使用的功能。

+0

謝謝你的幫助和澄清 - 添加返回false停止頁面刷新時點擊按鈕 - 但是,如果我點擊從手風琴頁面以外的其他頁面的按鈕,它只會加載頁面,不會跳到手風琴。當我添加event.preventDefault();它停止了按鈕全部點擊。 – Trisha

+0

@Trisha我編輯了我的答案。 –

+0

差不多在那裏!它現在加載頁面並向下滾動,但它不打開手風琴切換 – Trisha