簡體   English   中英

jQuery的獨特錨鏈接

[英]Unique anchor links with jQuery

我有一些針對所有單擊的錨鏈接的jQuery代碼。

    <a href="contact-us.php#media">Media Enquiries</a>
    <a href="#testimonials" class="btn">See Why</a>

jQuery代碼

   $('a[href*=#]').on('click', function(event){ 
        event.preventDefault();
        $('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
    });

但是,如果鏈接是另一個頁面“ contact-us.php#media”,則該鏈接不起作用,因為它期望它是同一頁面。

如何更改代碼以仍然以所有#個鏈接為目標,但是如果它鏈接到另一個頁面,則忽略它?

如果所有目標元素的href屬性都以#開頭,則可以使用Attributes Froms選擇器。

$('a[href^=#]')

另一個選項是檢查錨的路徑名:

$('a[href*=#]').filter(function() {
   return this.pathname === location.pathname;
}).on('click', ...);

上面的代碼片段僅檢查路徑名,如果您還想檢查主機名,則可以在過濾器方法中添加另一個條件,即: && this.hostname === location.hostname

找到專門針對同一頁面的內容。

執行平滑的頁面滾動到同一頁面上的錨點

暫無
暫無

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

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