簡體   English   中英

javascript使用#鏈接在同一頁面上打開標簽頁

[英]javascript to open a tab on same page using a # link

我有一個可以正常工作的javascript函數,因此當用戶單擊產品列表中顯示的評論鏈接時,它將打開產品頁面,並直接轉到頁面的標簽部分,其中評論為打開的標簽。

產品列表頁面的網址應為www.mysite / thisproduct#reviews。產品頁面評論部分的開頭為

<li id="reviews">

我有的JavaScript是

$(window).load(function() {
if(window.location.hash && $(window.location.hash).length > 0) {
    selected_tab = $(window.location.hash);
    selected_tab_num = selected_tab.attr('class');
    selected_tab_link = $('a', selected_tab)[0];
    expandcontent(selected_tab_num, selected_tab_link);
}
page_links = $('.review_page_links a');
if (page_links.length > 0) {
    var load_more_reviews = false;
    page_links.live('click', function(e){
        e.preventDefault();
        if (load_more_reviews) return false;
        review_page_url = $(this).attr('href');
        $('.reviews_content > div').css({'opacity':'0.5'});
        $.ajax({
            type: 'GET',
            url: review_page_url,
            cache: false,
            success: function(data){
                new_reviews = $('.reviews_content > div', data).hide();
                $('.reviews_content > div').fadeOut(100).remove();
                $('.reviews_content').append(new_reviews);
                $('.reviews_content > div').fadeIn(100);
            },
            complete: function(){
                load_more_reviews = false;
            }
        });
        load_more_reviews = true;
    });
}
});

我正在嘗試使用相同的代碼在同一頁面上工作,其中url單擊#review和reviews選項卡在同一頁面上。 我對javascript一點都不滿意,但我假設問題是因為代碼最初是為加載新頁面而編寫的,而現在它是同一個頁面事件。

我嘗試將.load更改為.onclick,因為我認為這可能會改變觸發方式,但沒有任何區別。

我正在尋找有關如何使此功能在同一頁面事件而不是在新頁面加載時起作用的建議。

您正在尋找hashchange事件。

$(window).on("hashchange", function () {
   // inspect the hash and do your stuff
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM